LINQ:我如何比较两个元素?

时间:2018-01-12 03:37:55

标签: c# linq

我有一个字符串列表,如果一个元素是另一个元素的子字符串,我想删除那个较短的元素。

所以,

{abc, def, ghi, ab, cd, ef} => {abc, def, ghi, cd}

我试过了:

list = list.Where((x, y) => x.Item1 != y.Item1 && x.Item1.Contains(y.Item1) == false);

但不知何故y是一个整数。

1 个答案:

答案 0 :(得分:1)

您使用的

The overload of Where用于使用元素和索引进行过滤。你需要使用"常规" Where,就像这样:

var res = list.Where(x => !list.Any(y => x != y && y.Contains(x)));

Demo.