親愛的朋友們在得到運行的組合,這是像我以前How to get moving combination from two List<String> in C#?C#:如何從兩個List <String>基於主列表
我有一個masterlist和兩個的childList類似問題下面
List<String> MasterList = new List<string> { "A", "B", "C", "D", "E" };
List<String> ListOne = new List<string> { "A", "B", "C" };
List<String> ListTwo = new List<String> { "B", "D" };
我只需要從該上面的列表中我使用像(前一個問題的回答(感謝丹尼·陳))獲得運行中的組合
List<String> Result = new List<string>();
Result = ListOne.SelectMany((a, indexA) => ListTwo
.Where((b, indexB) => ListTwo
.Contains(a) ? !b.Equals(a) && indexB > indexA :
!b.Equals(a)).Select(b => string.Format("{0}-{1}", a, b))).ToList();
這樣的結果列表將包含
"A-B"
"A-D"
"B-D"
"C-B"
"C-D"
現在我的問題是排序問題
在上述結果的第四個條目是C-B
但它應該是B-C
。因爲在MasterList
的C
之後是B
。
如何在我現有的linq
中做到這一點。
請幫我做到這一點。
我不明白爲什麼MasterList的。而且,輸出不應該是:「A-B,A-D,B-D,C-D」? – 2010-12-20 17:59:52
@ AS-CII:Friend,在ResultList中,這個項目應該是'MasterList'順序。即它應該以主列表順序開始 – 2010-12-20 18:03:49
上述代碼不會產生「B-D」。 – 2010-12-20 19:13:14