我有以下代码:
string[] s = {"one", "two", "three", "two", "Four"};
s = s.Where(x => x!="two").ToArray();
我想删除"两个"只有一次使用linq有没有办法做到这一点?我上面尝试的代码删除了"两个"数组中的元素。
答案 0 :(得分:1)
好吧,也许你想删除一般的重复项,然后它很简单:
s = s.Distinct().ToArray();
否则您可以使用GroupBy
:
s = s.GroupBy(str => str).SelectMany(g => g.Key != "two" ? g : g.Take(1)).ToArray();
这通常允许重复,但two
必须是唯一的。
答案 1 :(得分:0)
如果您只想删除第一个匹配项:
var t = s.ToList();
t.Remove(value);
s = t.ToArray();
否则它是.Distinct()函数