Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何计算数组中每个唯一元素的出现次数?_C#_Arrays_Visual Studio 2010 - Fatal编程技术网

C# 如何计算数组中每个唯一元素的出现次数?

C# 如何计算数组中每个唯一元素的出现次数?,c#,arrays,visual-studio-2010,C#,Arrays,Visual Studio 2010,我有一系列的邮政编码。如何获取数组中每个唯一邮政编码的列表,然后计算该唯一邮政编码在数组中出现的次数 我看到了: 我有预感这是解决我问题的办法,但我真的不明白。有人能告诉我这是不是 事实上,这是最好的办法。及 演示如何将数组放入列表中,以便利用GroupBy GroupBy处理IEnumerable,因此也处理数组(数组实现IEnumerable)。GroupBy根据键对对象进行分组。这里的关键是zipcode本身;因此,您只需传入一个映射到该代理的代理: var zips = new st

我有一系列的邮政编码。如何获取数组中每个唯一邮政编码的列表,然后计算该唯一邮政编码在数组中出现的次数

我看到了:

我有预感这是解决我问题的办法,但我真的不明白。有人能告诉我这是不是

  • 事实上,这是最好的办法。及
  • 演示如何将数组放入列表中,以便利用GroupBy
    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();