我發現很難解釋這個問題,但我認爲這是我們很多人遇到的常見問題。雖然價值與之前的價值相同,但是我們的價值爲
假設我有以下格式的List<string, string>
:
1, value-
1, and value-
1, again value-
2, another value-
2, yet another value-
我想這個轉換成List<string>
這將對只包含基於數2項
value-and value-again value-
another value-yet another value
這(1或2)。
我通常使用作品的代碼,但似乎有些什麼麻煩的。
有沒有更好的方法,可能與Linq?
快速控制檯應用程序來證明什麼,我試圖做這希望解釋它比我的問題更好!
class Program
{
static void Main(string[] args)
{
List<Tuple<string, string>> myTuple = new List<Tuple<string, string>>();
myTuple.Add(new Tuple<string, string>("1", "value-"));
myTuple.Add(new Tuple<string, string>("1", "and value-"));
myTuple.Add(new Tuple<string, string>("1", "again value-"));
myTuple.Add(new Tuple<string, string>("2", "another value-"));
myTuple.Add(new Tuple<string, string>("2", "yet another value"));
string previousValue = "";
string concatString = "";
List<string> result = new List<string>();
foreach (var item in myTuple)
{
if (string.IsNullOrEmpty(previousValue))
previousValue += item.Item1;
if (previousValue == item.Item1)
concatString += item.Item2;
else
{
result.Add(concatString);
concatString = "";
previousValue = item.Item1;
concatString=item.Item2;
}
}
//add the last value
result.Add(concatString);
}
[通過LINQ集團]的可能重複(http://stackoverflow.com/questions/7325278/group-by-in-linq) – asawyer