下面是用于LINQ查询的asp.net应用程序在控制器文件中运行的代码。
变量platformTotalSales = _context.VideoGames.Select(vg => new { vg.Platform,vg.GlobalSales });
结果:
{“平台”:"DS“、"globalSales":24.76 }、{”平台“:"X360”、"globalSales":13.73 }、{“平台”:"PS3“、"globalSales":21.4 }、{”平台“:"PS3”、"globalSales":12.73 }、{“平台”:"Wii“、"globalSales":28.62 }、{”平台“:"GBA”、"globalSales":15.85 },{ "platform":"DS","globalSales":23.42 },{ "platform":"DS","globalSales":12.27 }
名单长得多。希望为“平台”创造独特的关键价值,并将每个“平台”的全球销售总额相加。
任何帮助都是非常感谢的。
发布于 2022-04-27 01:23:20
using System;
using System.Linq;
public class Program
{
public static void Main()
{
Console.WriteLine("Hello World");
var data = new Model[]{
new Model("a",100),
new Model("a",200),
new Model("b",100)
};
var result = data.GroupBy(m=>m.Platform).ToDictionary(g=>g.Key,g=>g.Sum(m=>m.GlobalSales));
// Writes 300
Console.WriteLine(result["a"]);
// Writes 100
Console.WriteLine(result["b"]);
}
}
public class Model
{
public Model(string platform, int globalSales)
{
Platform = platform;
GlobalSales = globalSales;
}
public string Platform {get;}
public int GlobalSales {get;}
}更新--如果您正在使用asp.net --这可能不起作用,但将在asp.net核心中工作。上面的例子起作用了。要运行go 这里,请将编译器(左)切换到.NET 6并粘贴代码。
在本例中,模型是包含示例属性(平台和全局销售)的类(或接口)。
要在代码中应用这一点,您需要这样做:
var platformTotalSales = _context.VideoGames.GroupBy(m=>m.Platform).ToDictionary(g=>g.Key,g=>g.Sum(m=>m.GlobalSales));你原来的问题是这样问的:
希望为“平台”提供唯一的关键值,并将每个“平台”的总销售额相加在>全球范围内。
此代码返回一个字典,其中每个键都是平台,每个键的值是该平台的总销售额。
https://stackoverflow.com/questions/72022129
复制相似问题