C# 对.NET列表中的项目进行筛选和分组<&燃气轮机; List myGroup=lst.GroupBy(t=>new{t.userId,t.userName,t.email,t.reportTypeId}) .选择(g=>新建邮件列表 { userId=g.Key.userId, Acrynom=g.SelectMany(t=>t.Acrynom).ToArray(), userName=g.Key.userName, email=g.Key.email, reportTypeId=g.Key.reportTypeId }).ToList(); foreach(myGroup.Distinct()中的var mailingList) { StringBuilder AcrynomsList1=新StringBuilder(); foreach(mailingList.Acrynom中的var项) { 如果(Acrynoms.Length>0) { Acrynoms.追加(“,”); } AcrynomsList1.追加(项目); } }
我想要实现的是按reportTypeId对myGroup进行筛选和分组。reportTypeId可以是1或2,因此我希望有一个变量StringBuilder AcrynomsList1,其中reportTypeId=1,然后是另一个变量StringBuilder AcrynomsList2,其中reportTypeId=2C# 对.NET列表中的项目进行筛选和分组<&燃气轮机; List myGroup=lst.GroupBy(t=>new{t.userId,t.userName,t.email,t.reportTypeId}) .选择(g=>新建邮件列表 { userId=g.Key.userId, Acrynom=g.SelectMany(t=>t.Acrynom).ToArray(), userName=g.Key.userName, email=g.Key.email, reportTypeId=g.Key.reportTypeId }).ToList(); foreach(myGroup.Distinct()中的var mailingList) { StringBuilder AcrynomsList1=新StringBuilder(); foreach(mailingList.Acrynom中的var项) { 如果(Acrynoms.Length>0) { Acrynoms.追加(“,”); } AcrynomsList1.追加(项目); } },c#,ilist,C#,Ilist,我想要实现的是按reportTypeId对myGroup进行筛选和分组。reportTypeId可以是1或2,因此我希望有一个变量StringBuilder AcrynomsList1,其中reportTypeId=1,然后是另一个变量StringBuilder AcrynomsList2,其中reportTypeId=2 我当前的StringBuilder varibale AcrynomsList1具有所有reportTypeId 1和2值 这会给你想要的: List<MailingL
我当前的StringBuilder varibale AcrynomsList1具有所有reportTypeId 1和2值 这会给你想要的:
List<MailingList> myGroup = lst.GroupBy(t => new {t.userId, t.userName,t.email,t.reportTypeId})
.Select(g => new MailingList
{
userId = g.Key.userId,
Acrynom = g.SelectMany(t => t.Acrynom).ToArray(),
userName = g.Key.userName,
email = g.Key.email,
reportTypeId = g.Key.reportTypeId
}).ToList();
foreach (var mailingList in myGroup.Distinct())
{
StringBuilder AcrynomsList1 = new StringBuilder();
foreach (var item in mailingList.Acrynom)
{
if (Acrynoms.Length > 0)
{
Acrynoms.Append(", ");
}
AcrynomsList1.Append(item);
}
}
您可以直接将其分组为
字符串
,而无需使用StringBuilder
:
var list = lst.GroupBy(x => x.reportTypeId)
.Select(x => new
{
reportTypeId = x.Key,
Acronyms = x.SelectMany(t => t.Acrynom).ToArray()
}).ToList();
var acronymList1 = string.Join(", ", list[0].Acronyms);
var acronymList2 = string.Join(", ", list[1].Acronyms);
类程序
{
静态void Main(字符串[]参数)
{
var list=新列表();
var=list
.GroupBy(m=>m.ReportTypeID)
.选择(g=>new
{
ReportTypeID=g.键,
Items=string.Join(“,”,g.Where(s=>!string.IsNullOrEmpty(s.Acronym))。选择(m=>m.Acronym))
});
}
}
类邮件列表
{
public int ReportTypeID{get;set;}
公共字符串首字母缩略词{get;set;}
}
为您返回MailingList
的多个可枚举项,其中包含一个键
,用于公开您分组所依据的键。Distinct
是GroupBy
的一部分,因此您不需要它
class Program
{
static void Main(string[] args)
{
var list = new List<MailingList>();
var grouped = list
.GroupBy(m => m.ReportTypeID)
.Select(g => new
{
ReportTypeID = g.Key,
Items = string.Join(", ", g.Where(s => !string.IsNullOrEmpty(s.Acronym)).Select(m => m.Acronym))
});
}
}
class MailingList
{
public int ReportTypeID { get; set; }
public string Acronym { get; set; }
}