用多个属性构建动态GroupBy选择器表达式树
我是为Groupby构建动态表达树.我想实现的只是这样. var NestedGrouped = listOfPerson.GroupByMany(x => x.Name,x=>x.Age).ToList(); 我的人班就像: - class Person { public string Name{ get; set; } public int Age{ get; set; } public float Salary{ get; set; } } public class GroupResult { public object Key { get; set; } public int Count { get; set; } public IEnumerable Items { get; set; } public IEnumerable SubGroups { get; se
12 2024-04-26
编程技术问答社区
根据其列表中的元素对同一对象进行分组
我有以下类型Application对象的列表,看起来像: public class Application { public int AppId { get; set; } public List Questions { get; set; } } 我想做的是将它们映射到类型Section的对象,看起来像: public class Section { public List AppIds { get; set; } public List Questions { get; set; } } 根据以下规则对它们进行分组:在包含这些问题的苹果列表下收集所有相同的问题.示例性输入和输出: Input: A1(Q1,Q2,Q3), A2(Q1,Q2), A3(Q1,Q3), A4(Q1). O
10 2024-04-26
编程技术问答社区
C# 如何通过GroupBy使一个项目可以被放入多个组中
我有很多文章,我想按类别组织它们.对于groupby(x => x.Category),这将很简单,只是某些文章具有多个类别.我如何对文章进行分组,以便如果它们有两个类别,则将它们分为两个类别? 示例: Article 1, category:apples, oranges Article 2, category:apples Article 3, cateogry:oranges 我最终将有两个类别:苹果和橙子: apples: Article 1, Article 2 orange: Article 1, Article 3 解决方案 如果我正确理解了您的问题,则可以执行以下操作: var groups = products.SelectMany(p => p.Categories, (p, c) => new { Product = p, Category = c })
14 2024-04-26
编程技术问答社区
LINQ查询连接
当我使用以下代码检索信息时,它显示了一个错误. var mails = from m in entity.mailboxes join p in entity.ordinary_user_profile_info on m.from_id equals p.user_id select new MailList { mid = m.m_id, mfrom = m.**from_id,** // Error occours here mfomname = p.username, msubject = m.subject }; 错误是: " int?mailbox.from_id" 不能隐式转换类型的" int?"要" int".存在明确的转换(您是
18 2024-04-26
编程技术问答社区
如何在C#中使用LINQ按特定的时间戳间隔分组?
我有一个带有刻度对象的列表,包括一对双重值和时间戳. 我想根据时间间隔(例如15分钟)将列表分为儿童名单.一个列表仅具有刻度对象,来自:8:00:00-8:14-59 USW USW C#-Code: var result = from tick in listTicks group tick by tick.timestamp.Hour; datetime的功能诸如日,小时,分钟工作正常,但对我来说是不可能的. 它是对象的linq.我已经从数据库中获得了列表,我想更改列表. 如果我每天有8-22的数据分开到3 h,则他以这种方式分开: 0-2; 3-5; 6-8; 9-11 用代码: var result = from tick in listTicks group tick by (tick.timestamp.Day * 10 + tick.timestamp.Hour / 3); 我想要: 8-10; 11-13;
10 2024-04-26
编程技术问答社区
如何根据周数在我的列表中添加空对象
我从DB获取数据: 后来我将它们分组,所以看起来像 Month 6 Week 2 Amount 228 等等.. 这是代码: var yas = await _context.product .AsNoTracking() .Where(x => (x.PaymentDate != null && x.PaymentDate > DateTime.UtcNow.AddMonths(-4))).ToListAsync(); var grouped = yas.GroupBy(x => CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(x.PaymentDate ?? DateTime.UtcNow, CalendarWeekRule.FirstDay, DayOfWeek.Monday)) .Select(product => ne
8 2024-04-26
编程技术问答社区
组织结构图-按经理分组,显示他手下的所有员工
我写了以下代码以显示员工 - 经理报告,我有小组,以便显示一名经理下的所有员工,但仅显示1名员工.我缺少什么? linq组通过逻辑 - var emp = (from m in employee group m by m.ManagerId into g join e1 in employee on g.FirstOrDefault().ManagerId equals e1.EmpId into temp from t1 in temp.DefaultIfEmpty() select new { EmpId = g.FirstOrDefault()
10 2024-04-26
编程技术问答社区
如何用linq建立批处理/buckets
我需要从懒惰的句子中创建批次,并具有以下要求: 内存友好:即使在每批内部也必须懒惰(IEnumerable>,不包括解决方案构建数组) 解决方案不得枚举输入两倍(不包括Skip()和Take()) 如果不需要,解决方案不得迭代整个输入(除以GroupBy的解决方案) 这个问题是相似的,但对以下内容更加限制: 如何在批处理中循环循环 在linq中创建批处理 解决方案 最初发表的是@nick_whaley在 in linq中创建批量,但不是最好的回答是对问题的提出不同: 尝试以下操作: public static IEnumerable> Bucketize(this IEnumerable items, int bucketSize) { var enumerator = items.GetEnumerator(); while (enumerator.M
12 2024-04-25
编程技术问答社区
使用groupby区分基于两列的记录列表
我试图使用EF6来获取列表.我有这样的类: public class Province { public string province { set; get; } public string provinceCode { set; get; } } 区域类 namespace InnoviceDomainClass { using System; using System.Collections.Generic; public partial class Zone { public string CityCode { get; set; } public string City { get; set; } public string Province { get; set; } public Nullable Pro
12 2024-04-25
编程技术问答社区
如何使用Linq的Groupby对DataTable中的多列数值进行求和?
我有一个简单的数据,如下: column1 value1 value2 ee 1 2 ee 2 4 ee1 3 6 ee2 3 3 ee2 4 2 我想获得每个colunm1的value1和value2的总和,最后获取一个新的数据,如下: column1 value1 value2 ee 3 6 ee1 3 6 ee2 7 5 它非常喜欢它.特别是在这里,我必须使用foreach意识到它,这有点奇怪. var resultDt = dtIn.Clone(); dtIn.Select().GroupBy(m=>m["column1"].ToString()) .Select(n=>new { Row = n.First
14 2024-04-25
编程技术问答社区
按值对linq结果进行分组,并对空值或无效值进行分组和计数
这是这个问题.我现在想对分组做一些计数. 原始查询:排除无效的邮政编码执行以下操作: List md = (from rst in QBModel.ResultsTable where (!String.IsNullOrWhiteSpace(rst.CallerZipCode) && rst.CallerZipCode.Length > 2) group rst by rst.CallerZipCode.Substring(0, 3) into newGroup orderby newGroup.Key select new DataSourceRecord() { State = newGroup.Select(i => i.CallerState).FirstOrDefault(), ZipCode = newGr
20 2024-04-25
编程技术问答社区
LINQ分组,然后显示日期时间为(dd mmm)。
我希望linq按日期分组,但在文本中显示 这是我的代码 var groups = _uow.Orders.GetAll() .Where(x => x.Created > baselineDate) .GroupBy(x => x.Created.ToString("yyyy-MM-dd")); var orders = new { Day = groups.Select(g => g.Key).ToArray(), Total = groups.Select(g => g.Sum(t => t.Total)).ToArray(), }; 结果是(放入图标签不好) {"Day": [2, 3, 4, 5], "Total": [9999.00, 9999.00, 9999.00, 9999.00] } 但我想要这个(每月) "
6 2024-04-24
编程技术问答社区
参考属性的LINQ表达式
我想获得参考属性的LINQ表达 我需要将lambda表达式作为groupcol => groupcol.role.name 我已经尝试了表达式,但没有成功,这将与groupcol => groupcol.menutext一起使用,但不适合参考类型 var menu = Expression.Parameter(typeof(Menu), "groupCol"); // getting Role.Name' is not a member of type exception var menuProperty = Expression.PropertyOrField(menu, property); var lambda = Expression.Lambda>(menuProperty, menu); public class Menu { public string MenuText {get;set;} pub
10 2024-04-24
编程技术问答社区
c# linq MethodCallExpression for Max(DataRow) used for .GroupedBy().Select()
这个问题在此指的是我以前的问题在这里 @xanatos建议的sum()表达式非常完美. 我还尝试了double类型字段的max()表达式,并且没有问题. 作为下一步,我决定添加DateTime字段并为其计算Max(). 我修改了组类,如下: private class GroupSum : GroupKey { public Double AggN0 { get; set; } public DateTime AggD0 { get; set; } } 并编程了功能: private static Func, DateTime> GetFuncMaxDateTime() { MethodInfo methInfo = typeof(DataRowExtensions).GetMethod("Field", new Type[] { typeof(DataRow), typeof(stri
10 2024-04-24
编程技术问答社区
Linq: 按条件分割列表,最大尺寸为n
我想变换一个数组: ["a", "b", "b", "a", "b", "a", "b"] to ["a", "a", "b", "b", "a", "b", "b"]或["b", "b", "a", "a", "b", "b", "a"] 我想以特殊条件匹配的方式对数组进行分组.在我的情况下,item == 'a'或item == 'b'.我想将这些小组分成2组.我目前有点混乱如何以优雅的方式做. 任何人可以帮忙吗? 也许以下内容更加清楚: 我喜欢首先将数组分组为" A"和" B"项目: A组: ["a","a","a"] 和 b group: ["b","b","b","b"] 然后,我想将其分成2: 的组 A组: ["a","a"] ["a"] b group: ["b","b"] ["b","b"] 现在我想将它们合并在一起以获得结果: ["a","a","b","b","a",
12 2024-04-24
编程技术问答社区
先GroupBy再Select,有条件地增加记录
我有LINQ查询,其中我必须使用根据内部字段收集的结果集进行响应.我已经通过linq查询完成了此操作,然后是一个foreach,但我想避免foreach循环,并通过 以某种方式从 中做到这一点 List result = new List(); var tempResultSet = _context.MainRecordTable.Where(h => h.id) .Select(lev => new { Contacts = (lev.basetable2 != null && lev.basetable2.basetable3 != null && lev.basetable2.basetable3.basetable6 != null
12 2024-04-23
编程技术问答社区
linq group by object
我有一个对象,其中包含另一个对象的列表如下: class cl { List a ; public List listofA { get; set; } } class a { //other properties string comment ; public string comment { get; set; } } 现在如何进行linq查询以查看是否是某个字符串的评论,这是我的查询: var query = (from c in scope.Extent() where c.Date >= dateFrom && c.Date
6 2024-04-23
编程技术问答社区
EF LINQ翻译:复杂查询
我有此代码(注意 l.firstordefault().名称): var qry = from peron in db.Persons join room in db.Rooms on peron.Room.Id equals room.Id join passport in db.Passports on peron.Passport.Id equals passport.Id select new {peron.Fio, room.Name, passport.Number, Count = 0}; qry = qry.GroupBy(l => new {l.Fio, l.Number}) .Select(l => new { l.Key.Fio, l.FirstOrDefault().Name
14 2024-04-23
编程技术问答社区
扁平化数据到分层模型C#
我有一些来自数据库的平面数据: List elements = new List() { new FlatDataGroup {Text = "", GroupID = 1, ParentGroupID = 0, GroupName = "Admin", UserID = 1, UserName = "John Doe"}, new FlatDataGroup {Text = "", GroupID = 1, ParentGroupID = 0, GroupName = "Admin", UserID = 2, UserName = "Jane Smith"}, new FlatDataGroup {Text = "", GroupID = 2, ParentGroupID = 1, GroupName = "Support", Use
18 2024-04-23
编程技术问答社区