1

我正在寻找所需的输出,这是我可以得到它的正确位置。

我在 c# 中有两个 List 作为 ids1list ,ids2list

ids1list:
Title
nen154
source

ids2list:
tittl
Title
nen154
WTOC
source 
style

我将这两个比较为var result = ids1list.Intersect(ids2list).ToList();

结果我在这里得到了共同值我想要 ids2list 的索引这是 ids1list 中的共同值

有些人像这样建议我,

        ids1list.Select(s => new 
        {
            Id = s, Index = ids2list.IndexOf(s) 
        });

但它还没有为我工作,任何人都可以给我适当的解决方案。因为我撞到了这里。

4

1 回答 1

6

如果你想要它的索引,你必须选择第二个列表:

IEnumerable<int> indices = ids2list
    .Select((s, i) => new{ Str = s, Index = i })
    .Where(x => ids1list.Contains(x.Str))
    .Select(x => x.Index);

与您类似的另一种方法:

indices = ids1list
    .Select(s => new{ Str = s, Index = ids2list.IndexOf(s) })
    .Where(x => x.Index >= 0)
    .Select(x=> x.Index);
于 2013-07-01T15:34:08.260 回答