Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.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# 使用LINQ进行分组、连接和计数_C#_Linq - Fatal编程技术网

C# 使用LINQ进行分组、连接和计数

C# 使用LINQ进行分组、连接和计数,c#,linq,C#,Linq,使用Linq,我需要将表(1)汇总到表(2)中 表(1) 比赛 游泳者 国家 即兴说唱 A. 美国 即兴说唱 B 美国 即兴说唱 C 英国 即兴说唱 D 伊塔 蝴蝶 E 美国 蝴蝶 F 英国 蝴蝶 G 英国 蝴蝶 H 伊塔 你可以换电话线 Country= string.Join(" - ", y.Select(z =>z.Country).Distinct()) 与: 这不是最好的解决方案,但它保留了您进行查询的方式 如果希望此查询更优化一点,则可以引入distin

使用Linq,我需要将表(1)汇总到表(2)中

表(1) 比赛 游泳者 国家 即兴说唱 A. 美国 即兴说唱 B 美国 即兴说唱 C 英国 即兴说唱 D 伊塔 蝴蝶 E 美国 蝴蝶 F 英国 蝴蝶 G 英国 蝴蝶 H 伊塔
你可以换电话线

Country= string.Join(" - ", y.Select(z =>z.Country).Distinct())
与:

这不是最好的解决方案,但它保留了您进行查询的方式

如果希望此查询更优化一点,则可以引入
distinctccountries
变量f.e.:

list.GroupBy(x => x.race)
       .Select(y => {
           var distinctCountries = y.Select(z => z.country).Distinct();
           return new
           {
               Race = y.Key,
               Count = y.Count(),
               Country = string.Join(" - ", distinctCountries.Select(z => $"{z}({y.Where(c => c.country == z).Count()})").Distinct())

           };

       });

你可以换电话线

Country= string.Join(" - ", y.Select(z =>z.Country).Distinct())
与:

这不是最好的解决方案,但它保留了您进行查询的方式

如果希望此查询更优化一点,则可以引入
distinctccountries
变量f.e.:

list.GroupBy(x => x.race)
       .Select(y => {
           var distinctCountries = y.Select(z => z.country).Distinct();
           return new
           {
               Race = y.Key,
               Count = y.Count(),
               Country = string.Join(" - ", distinctCountries.Select(z => $"{z}({y.Where(c => c.country == z).Count()})").Distinct())

           };

       });

谢谢你的回答,答案很接近,但问题是当我应用你的解决方案时,计数(对于美国以外的国家(2),英国(1))不正确。你确定拥有与上述相同的数据集吗?我仔细检查了一下,我完全符合你的要求。你是对的,它现在工作得很好。我有不同的数据集,问题在于过滤器没有应用到正确的位置。再次感谢您的回答,答案很接近,但问题是,当我应用您的解决方案时,计数(对于美国以外的国家(2),英国(1))不正确。您确定拥有与上述相同的数据集吗?我仔细检查了一下,我完全符合你的要求。你是对的,它现在工作得很好。我有不同的数据集,问题在于过滤器没有应用到正确的位置。再次感谢你