使用 C#.NET 4.0 LINQ 从数组中删除重复项?
我有这个 C# 代码,为服务构建一串逗号分隔的匹配项:
for (m = r.Match(site); m.Success; m = m.NextMatch())
{
found = found + "," + m.Value.Replace(",", "");
}
return found;
输出如下:aaa,bbb,ccc,aaa,111,111,ccc
现在该代码位于 .NET 4.0 上 如何使用 C# LINQ 删除重复项?
另外,有什么方法可以在不改变顺序的情况下删除重复项吗?
我在另一篇文章中找到了这个示例代码,但不确定如何应用它:
int[] s = { 1, 2, 3, 3, 4};
int[] q = s.Distinct().ToArray();
谢谢。
I have this c# code that builds a string of comma seperated matches for a service:
for (m = r.Match(site); m.Success; m = m.NextMatch())
{
found = found + "," + m.Value.Replace(",", "");
}
return found;
Output looks like: aaa,bbb,ccc,aaa,111,111,ccc
Now that code is on .NET 4.0 How can I use C# LINQ to remove duplicates?
Also, Any way to remove duplicates without changing order?
I found this sample code in another post, but not sure exactly how to apply it:
int[] s = { 1, 2, 3, 3, 4};
int[] q = s.Distinct().ToArray();
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
重写构建结果的代码以直接输出它。
IE。重写这个:
对此:
这将返回一个数组。如果您仍希望将其作为字符串返回:
您可能能够也可能无法从最后一个代码中删除最后一个
.ToArray()
,具体取决于 .NET 运行时版本。 .NET 4.0string.Join(...)
可以采用IEnumerable
,而以前的版本需要一个数组。Rewrite the code that builds the result to output it directly.
ie. rewrite this:
To this:
This will return an array. If you still want it back as a string:
You may or may not be able to remove the last
.ToArray()
from the last code there depending on the .NET runtime version. .NET 4.0string.Join(...)
can take anIEnumerable<string>
, whereas previous versions requires an array.这将返回一串逗号分隔的值,不重复:
This will return a string of comma seperated values without duplicates:
这可能是一种可能的解决方案:
this could be one possible solution:
您可以通过单个 LINQ 查询来实现此目的
You can achieve this in a single LINQ query