各位すべてに基づいて2つのリスト
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" };
以下のようなmasterlistと2たchildListを抱えている私の前の質問
How to get moving combination from two List<String> in C#?
のようなものです
私はちょうど私が(前の質問の答え(おかげでダニー・チェン))のように使用していますそのため、上記のリストから実行されている組み合わせを取得する必要があり
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();
その結果リストは、今私の問題は、4番目のエントリがC-B
ですが、それはB-C
する必要があります上記の結果では、ソート問題
ある
"A-B"
"A-D"
"B-D"
"C-B"
"C-D"
が含まれています。 MasterList
の場合、C
はB
の後になります。
私の既存のlinq
でこれを行う方法。
どうかお手伝いください。
私はなぜMasterListの理解していない
とにかく、ここであなたがこれまでのために求めてきました結果を生成するものがあります。また、出力は「A-B、A-D、B-D、C-D」でなければならないのでしょうか? –
@ AS-CII:フレンド、 'ResultList'では、項目は' MasterList'の順でなければなりません。すなわち、そのマスターはマスターリストの順序で始まるべきである。 –
上記のコードは "B-D"を生成しない。 –