Tag: 聚合

将linq中的字符串聚合或连接到SQL查询(SQL Server)

给出一个像这样的表 ID | Name | City 1 | X | Y 2 | Z | Y 3 | W | K 我想产生一个像这样的结果 ID | Description 1 | Y (X, Z) 3 | K (W) 我尝试过类似的东西 From C In Clients Group C By C.ID, C.City _ Into G = Group Select New With {.ID = ID, […]

如何使用Linq的聚合函数C#添加到列表

我有一个类型的对象集合,我想转换为不同的类型。 这可以通过foreach轻松完成,但我想弄清楚如何使用Linq的聚合函数来完成它。 问题是所有Aggregate示例都使用类型行string或int,它们支持’+’运算符。 我希望累加器类型是一个列表,它不支持’+’语义。 这是一个简单的例子: public class DestinationType { public DestinationType(int A, int B, int C) { … } } var set = from item in context.Items select new { item.A, item.B, item.C }; var newSet = set.Aggregate( new List(), (list, item) => list.Add(new DestinationType(item.A, item.B, item.C)) ); 问题是List 。添加返回void。 Aggregate的第二个参数的返回类型需要是List。 如果我有一个支持’+’类型语义的列表类型,我可以创建第二个参数 list + item […]

关联,聚合和组合

我正在处理这个问题。 我正在创造数学问题,每个人都有回应。 例如。 如果我的问题是关于“5x + 15 = 2的结果?” ,我将等待一个答案(作为整数)。 如果我的问题是“给我这个形状的区域和许可者” ,我将等待两个答案(作为双打)。 在另一个中,我将等待作为字符串的响应 和其他人一样,我可以有几种答案或各种数据类型的响应。 我的大问题是。 如何在类问题和响应之间建立关系。 如果这应该是一个关联,聚合或组合,我也在处理。 谢谢。 编辑:很好,这是一个组合。 最后,根据上述句子,我该如何表现设计? 这些是我的一些想法,但我想我错了。 public class Question { public Response _response; //public List //public Dictionary public Question() { this._response = new Response(); } } public class Response { }

Linq – 在一个查询中计算多个平均值

我正在尝试将一些SQL查询转换为Linq,以避免多次访问数据库。 我正在尝试转换的旧SQL: SELECT AVG(CAST(DATEDIFF(ms, A.CreatedDate, B.CompletedDate) AS decimal(15,4))), AVG(CAST(DATEDIFF(ms, B.CreatedDate, B.CompletedDate) AS decimal(15,4))) FROM dbo.A INNER JOIN dbo.B ON B.ParentId = A.Id 所以我创建了两个C#类: class B { public Guid Id { get; set; } public DateTime CreatedDate { get; set; } public DateTime CompletedDate { get; set; } } class A { public Guid Id { […]

AggregateException C#示例

我在网上看到了一个AggregateException的例子,我正在试图弄清楚它是如何工作的,所以我写了一些简单的例子,但由于某种原因我的代码不起作用 有人可以解释一下我的问题是什么 public static void Main() { try { Parallel.For(0, 500000, i => { if (i == 10523) throw new TimeoutException(“i = 10523”); Console.WriteLine(i + “\n”); }); } catch (AggregateException exception) { foreach (Exception ex in exception.InnerExceptions) { Console.WriteLine(ex.ToString()); } } }

将Dictionary 转换为单个聚合字符串表示的最佳方法?

如何将键值对的字典转换为单个字符串? 你能用LINQ聚合做到这一点吗? 我已经看到使用字符串列表执行此操作的示例,但不是字典。 输入: Dictionary map = new Dictionary { {“A”, “Alpha”}, {“B”, “Beta”}, {“G”, “Gamma”} }; 输出: string result = “A:Alpha, B:Beta, G:Gamma”;

使用LINQ聚合的entity framework来连接字符串?

这对我来说很容易在TSQL中执行,但我只是坐在这里,试着让它在EF4中工作! 我有一个表,让我们称之为TestData。 它有字段,比如:DataTypeID,Name,DataValue。 DataTypeID, Name, DataValue 1,”Data 1″,”Value1″ 1,”Data 1″,”Value2″ 2,”Data 1″,”Value3″ 3,”Data 1″,”Value4″ 我想对DataID / Name进行分组,并将DataValue连接成CSV字符串。 期望的结果应包含 – DataTypeID, Name, DataValues 1,”Data 1″,”Value1,Value2″ 2,”Data 1″,”Value3″ 3,”Data 1″,”Value4″ 现在,我正在努力做到这一点 – var query = (from t in context.TestData group h by new { DataTypeID = h.DataTypeID, Name = h.Name } into g select new { DataTypeID […]

如果可能有空集,如何进行Linq聚合?

我有一个Linq的Things集合,其中Thing有一个Amount (十进制)属性。 我正在尝试针对特定事物的子集对此进行聚合: var total = myThings.Sum(t => t.Amount); 这很好用。 但后来我添加了一个条件,让我在结果中没有任何东西: var total = myThings.Where(t => t.OtherProperty == 123).Sum(t => t.Amount); 而不是得到total = 0或null,我得到一个错误: System.InvalidOperationException:无法将null值分配给类型为System.Decimal的成员,该成员是非可空值类型。 这真是令人讨厌,因为我没想到这种行为。 我本来期望总数为零,也许是null – 但肯定不会抛出exception! 我究竟做错了什么? 什么是解决方法/修复? 编辑 – 例子 感谢大家的评论。 这是一些代码,复制和粘贴(不简化)。 这是LinqToSql(也许这就是为什么你无法重现我的问题): var claims = Claim.Where(cl => cl.ID cl.ClaimedAmount); // throws exception

Linq to Objects – 从数字列表中返回数字对

var nums = new[]{ 1, 2, 3, 4, 5, 6, 7}; var pairs = /* some linq magic here*/ ; =>对= {{1,2},{3,4},{5,6},{7,0}} 对的元素应该是两元素列表,或者是一些具有两个字段的匿名类的实例,例如new {First = 1, Second = 2} 。