0

リスト A とリスト B の間で異なるすべての項目を含む文字列リストを作成しようとしています。次のコードがあり、近いと感じていますが、最後の行で構文エラーが発生しています。どんな助けでも大歓迎です:

 List<string> ListA = new List<string>(textBox_CompareListA.Text.Split(delimiterChars, StringSplitOptions.RemoveEmptyEntries));
 List<string> ListB = new List<string>(textBox_CompareListB.Text.Split(delimiterChars, StringSplitOptions.RemoveEmptyEntries));

 List<string> DifferencesList = ListA.Except(ListB, StringComparer.OrdinalIgnoreCase).Union(ListB.Except(ListA, StringComparer.OrdinalIgnoreCase));

ここにエラーがあります:http://screencast.com/t/Y8S9LC2Y

構文エラー

4

3 に答える 3

4

クエリ式からリストを取得するには、Enumerable.ToListを呼び出してみてください。

List<string> DifferencesList = ListA.Except(ListB, StringComparer.OrdinalIgnoreCase).Union(ListB.Except(ListA, StringComparer.OrdinalIgnoreCase)).ToList();
于 2013-01-27T05:50:36.163 に答える
2

これを指摘せずにはいられない:

 List<string> diffs = ListA.Union(ListB).Except(ListA.Intersect(ListB)).ToList();

データによっては、より高速になる可能性があります(交差点が小さい場合は信じています)。

于 2013-01-27T06:01:08.040 に答える
1

最後の行コードを次のように変更します。

List<string> DifferencesList = ListA.Except(ListB, StringComparer.OrdinalIgnoreCase).Union(ListB.Except(ListA, StringComparer.OrdinalIgnoreCase));

に :

var DifferencesList = ListA.Except(ListB, StringComparer.OrdinalIgnoreCase).Union(ListB.Except(ListA, StringComparer.OrdinalIgnoreCase));

または :

IEnumerable<string> DifferencesList = ListA.Except(ListB, StringComparer.OrdinalIgnoreCase).Union(ListB.Except(ListA, StringComparer.OrdinalIgnoreCase));
于 2013-01-27T05:50:27.863 に答える