C# 如何计算数组中每个唯一元素的出现次数?
我有一系列的邮政编码。如何获取数组中每个唯一邮政编码的列表,然后计算该唯一邮政编码在数组中出现的次数 我看到了: 我有预感这是解决我问题的办法,但我真的不明白。有人能告诉我这是不是C# 如何计算数组中每个唯一元素的出现次数?,c#,arrays,visual-studio-2010,C#,Arrays,Visual Studio 2010,我有一系列的邮政编码。如何获取数组中每个唯一邮政编码的列表,然后计算该唯一邮政编码在数组中出现的次数 我看到了: 我有预感这是解决我问题的办法,但我真的不明白。有人能告诉我这是不是 事实上,这是最好的办法。及 演示如何将数组放入列表中,以便利用GroupBy GroupBy处理IEnumerable,因此也处理数组(数组实现IEnumerable)。GroupBy根据键对对象进行分组。这里的关键是zipcode本身;因此,您只需传入一个映射到该代理的代理: var zips = new st
GroupBy处理
IEnumerable
,因此也处理数组(数组实现IEnumerable)。GroupBy根据键对对象进行分组。这里的关键是zipcode本身;因此,您只需传入一个映射到该代理的代理:
var zips = new string []{"8000", "9000"}
var uniqueZips = zips.GroupBy(x => x);
现在,
uniqueZips
是一个,其中键是邮政编码,元素数是该邮政编码出现的次数。GroupBy处理IEnumerable
,因此也处理数组(数组实现IEnumerable)。GroupBy根据键对对象进行分组。这里的关键是zipcode本身;因此,您只需传入一个映射到该代理的代理:
var zips = new string []{"8000", "9000"}
var uniqueZips = zips.GroupBy(x => x);
现在,
uniqueZips
是一个,其中键是邮政编码,元素数是该邮政编码出现的次数。您应该使用where仅选择count==1的条目,并使用select列出值,然后使用ToList()返回列表
应该是这样的:
List<string> uniqueZips = zips.GroupBy(z=>z).Where(z => z.Count() == 1).Select(z => z.Key).ToList();
List uniqueZips=zips.GroupBy(z=>z).Where(z=>z.Count()==1).选择(z=>z.Key).ToList();
在internet上搜索101个linq示例,它提供了许多常见示例。您应该使用Where仅选择count==1的条目,并使用select列出值,然后使用ToList()返回列表 应该是这样的:
List<string> uniqueZips = zips.GroupBy(z=>z).Where(z => z.Count() == 1).Select(z => z.Key).ToList();
List uniqueZips=zips.GroupBy(z=>z).Where(z=>z.Count()==1).选择(z=>z.Key).ToList();
在internet上搜索101个linq示例,它会为您提供许多常见示例。这应该适合您:
var zips = new string[] { "12345", "12345", "54321" };
var groups = zips.GroupBy(z => z);
foreach(var group in groups)
Console.WriteLine("{0} -> {1}", group.Key, group.Count());
应该给你:
12345 -> 2
54321 -> 1
事实上,德里斯大部分时间都能带你去那里。我刚刚发布了这篇文章,以帮助展示如何枚举这些组。这应该适合您:
var zips = new string[] { "12345", "12345", "54321" };
var groups = zips.GroupBy(z => z);
foreach(var group in groups)
Console.WriteLine("{0} -> {1}", group.Key, group.Count());
应该给你:
12345 -> 2
54321 -> 1
事实上,德里斯大部分时间都能带你去那里。我刚刚发布了这篇文章,以帮助演示如何枚举这些组。为什么不试试?此外,尝试就是学习,比写这个问题要短。如果它是唯一的,答案总是1。。。。。。。。。除非你指的是不同的:)是的,我想我指的是不同的。我还在学术语/语法。你为什么不试试呢?此外,尝试就是学习,比写这个问题要短。如果它是唯一的,答案总是1。。。。。。。。。除非你的意思是不同的:)是的,我想我是指与众不同的。我还在学习术语/语法。Distinct()可能比.GroupBy()更好用。OP还需要每个组中的计数。如何使用Distinct获得计数?我的意思是,您只回答了部分问题。Distinct()可能比.GroupBy()更好。OP还需要每组的计数。您如何使用Distinct获得计数?我的意思是,您只回答了部分问题。这只是用于显示信息的格式。假设我不使用Console.WriteLine,而是将值存储到数组中。我怎么做?@phan var zipArray=groups.Select(g=>new{Zip=g.Key,Count=g.Count()}).ToArray();它只是用来显示信息的格式。假设我不使用Console.WriteLine,而是将值存储到数组中。我怎么做?@phan var zipArray=groups.Select(g=>new{Zip=g.Key,Count=g.Count()}).ToArray();