如何比較兩個字符串列表並返回第一個列表的相同值和索引?如何比較兩個列表並返回值和索引
例子:
a = List<string> {a,b,c};
b = List<string> {d,a,c};
我需要回到c
和指數3
,a
和索引1
我只是比較現在:
var duplicateProduct = productIdList.Where(b => allProduct.Any(a => b.Contains(a)));
感謝您的幫助。
如何比較兩個字符串列表並返回第一個列表的相同值和索引?如何比較兩個列表並返回值和索引
例子:
a = List<string> {a,b,c};
b = List<string> {d,a,c};
我需要回到c
和指數3
,a
和索引1
我只是比較現在:
var duplicateProduct = productIdList.Where(b => allProduct.Any(a => b.Contains(a)));
感謝您的幫助。
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));
編輯:如果你不想一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));
的 「;」只檢索出現在第二個列表中的元素
var duplicateProduct = productIdList.Where(b => allProduct.Any(a => b.Contains(a)))
.Select(x => new { x, index = productIdList.IndexOf(x)});
這將創建匿名類型的項目的IEnumerable並在productIdList
列表項的索引。
試試這個,它可能會幫助你。
var al =new List<string> { "a","b","c"};
var bl = new List<string> { "d","a","c"};
var res = (from a in al
join b in bl
on a equals b
select new
{
Matched = a,
Index = al.IndexOf(a)
}).ToList();
我還有一個問題。如果我還需要第二個索引,我需要做什麼? – Aranfea
@Aranfea你的意思是從第二個列表中的重複?我已經更新了我的答案 – Innat3
我想顯示第二個列表的相同數據+索引,例如。 listA {「a」,「b」,「c」}; listB {「d」,「a」,「c」};我想顯示:「a」,「1」 - listA的索引,「2」 - listB的索引 – Aranfea