2017-08-20 20 views
0

文字列名のリストを括弧で囲んで注文したいと思います。 ORDERBY命令に分割さ文字列から最後の文字をカットする命令Substring(0, o.Length - 1)を変更する方法Śniadanie+ Obiadokolacja 私は、この名前を抽出したいAgrawka ; 2-osobowy(Agrawka):以前に文字で分割された文字列から最後の文字を切り捨てます

List<string> result = new List<string>(); 
      list.ForEach(elem => result.Add(elem.Value)); 
      result.Add(item); 
      result = result.OrderBy(o=>o.Split(';')[0].Substring(0, o.Length - 1).Split('(')[1]).ToList(); 

例?

答えて

0

私が理解している場合は、角括弧内の値を抽出し、入力値のリストをその値で並べ替えたいと思っています。そこで、以下のコードは、データをソートし、追加リストに値を抽出します。

 List<string> resultList = new List<string>() { "2-osobowy(Bgrawka);Śniadanie+Obiadokolacja", "2-osobowy(Agrawka);Śniadanie+Obiadokolacja" }; 
     string tempStr = null; 
     var extractedStr = new List<String>(); 
     resultList = resultList.OrderBy(o => 
     { 
      var extract = (tempStr = o.Split(';')[0].Split('(')[1]).Substring(0, tempStr.Length - 1); 
      extractedStr.Add(extract); 
      return extract; 
     }).ToList(); 

あなただけの並べ替え、入力データをしたい場合は、単にラムダを簡素化:

 resultList = resultList.OrderBy(o => (tempStr = o.Split(';')[0].Split('(')[1]).Substring(0, tempStr.Length - 1)).ToList();