LINQ:返回列表中的非重复项

kuhbmx9i  于 2023-01-18  发布在  其他
关注(0)|答案(5)|浏览(161)

如果我有一个这样的列表:

List<int> test = new List<int>{1, 1, 2, 2, 3, 3, 4, 4, 5, 6 , 7 , 7 , 7};

然后使用.Distinct()方法:

var distinctTest = test.Distinct();

将使结果列表如下所示:{ 1、2、3、4、5、6、7 }
我如何制作一个独特的项目列表,像这样:{ 5、6 }

vojdkbi0

vojdkbi01#

您是否要删除所有重复项?
您可以使用GroupBy

var distinctTest = test
    .GroupBy(i => i)
    .Where(g => g.Count() == 1)
    .Select(g => g.Key);
8wigbo56

8wigbo562#

test.Select(x => x).Distinct();

这将返回一个值序列(IEnumerable)--每个唯一值一个。

x8diyxa7

x8diyxa73#

List<int> numberList = new List<int>() { 3, 3, 3, 4, 5, 5, 7, 7, 9, 9 };

        foreach (var x in numberList
            .GroupBy(i => i)
            .Where(g => g.Count() == 1)
            .Select(g => g.Key))
        {
            Console.WriteLine(x.ToString());// outputs 4
        }
liwlm1x9

liwlm1x94#

List<int> numberList = new List<int>() { 3, 3, 3, 4, 5, 5, 7, 7, 9, 9 };
 var distinctTest = numberList 
                .GroupBy(i => i)
                .Where(g => g.Count() == 1)
                .Select(g => g.Key);

foreach (var item in distinctTest)
{
    Console.WriteLine(item);
}
5cg8jx4n

5cg8jx4n5#

名称空间HelloWorld {类程序{静态空主(字符串[]参数){字符串[]字符串= {“abc”,“xyz”,“klm”,“xyz”,“abc”,“abc”,“rst”};

// IEnumerable<string> s =;
        var s = str.GroupBy(x => x).Where(x => x.Count()==1).Select(x => x.Key).Distinct(); ;

       foreach(var s2 in s)
        {
            Console.WriteLine(s2);
        }  
       Console.ReadLine();

    }
  
}

}
这适用于String []中的非重复字符

相关问题