我有一个字符串列表,如果一个元素是另一个元素的子字符串,我想删除那个较短的元素。
所以,
{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
是一个整数。
答案 0 :(得分:1)
The overload of Where
用于使用元素和索引进行过滤。你需要使用"常规" Where
,就像这样:
var res = list.Where(x => !list.Any(y => x != y && y.Contains(x)));