List<string> listA = new List<string>() { "a", "b", "c" };
List<string> listB = new List<string>() { "d", "a", "c" };
var result = listA.Select((x, y) => new { element = x, index = y })
.Where(z => listB.Contains(z.element));
EDIT:あなたは0から始まるインデックスを使用しない場合は、あなたの代わりにこれを行うことができます。
var result = listA.Select((x, y) => new { element = x, index = y += 1 })
.Where(z => listB.Contains(z.element));
EDIT2は:
var list1_duplicates = listA.Select((x, y) => new { element = x, index = y })
.Where(z => listB.Contains(z.element));
var list2_duplicates = listB.Select((x, y) => new { element = x, index = y })
.Where(z => listA.Contains(z.element));
var all_duplicates = list1_duplicates.Concat(list2_duplicates);
EDIT3両方のリストから重複を取得:まだ各要素の両方のリストのインデックスを取得し、同じリストの重複を管理するコードの別の更新
List<string> listA = new List<string>() { "a", "b", "c" };
List<string> listB = new List<string>() { "d", "a", "c", "a" };
var result = listA.Select((a) => new
{
element = a,
indexA = listA.IndexOf(a),
indexB = Enumerable.Range(0, listB.Count).Where(b => listB[b].Equals(a)).ToArray()
});
(別売)の前に
.Where(a => listB.Contains(a.element));
を追加 ";" 2番目のリストにある要素のみを取得する
もう1つ質問があります。 2番目のインデックスが必要な場合は、私は何をする必要がありますか? – Aranfea
@Aranfeaあなたは2番目のリストから重複を意味しますか?私は私の答えを更新しました – Innat3
私はこの同じデータ+ 2番目のリストのインデックスを表示したいと思います。 listA {"a"、 "b"、 "c"}; 012BlistB {"d"、 "a"、 "c"};私はショーを望みます: "a"、 "1" - listAのインデックス、 "2" - listBのインデックス – Aranfea