var query = str1.GroupBy(g => g).Where(w => w.Count() == 1);
你是最棒的,灰常感谢。
str1.GroupBy().Keys
分组确实可以
不过可能稍微性能差点 不过没关系了
笨的方法,你肯定得循环这个集合一次,然后对比,不知道扩展方法中有没有这个类似的方法
有一个方法可能会提高点性能,先排序,然后一个个取,取出来的时候和最后一个对比一下,如果想等就不要
这个方法我觉得可以,因为我在写SQL语句的时候也是先分组然后使用have
List<string> str1 = new List<string>();
str1.Add("11111");
str1.Add("22222");
str1.Add("11111");
str1.Add("aaaaa");
List<string> str2 = new List<string>();
foreach(var a in str1)
{
if (!str2.Contains(a)) //判断str2里面是否已经存在a 这个值
{
str2.Add(a);
}
}
str2里面的值就是str1里面只出现一次的值
这是不是你想要的呢?
这个代码我知道,得到的结果是
11111
22222
aaaaa
是得到唯一的值,但是不是只出现了一次,
楼下有个用GroupBy分组的方法确实可行,效果很好。
你可以试一试。