C# 在这种情况下,如何准备guid为逗号分隔的字符串?
嗨,我有一个普通的对象学校列表。以学校ID作为GUID,学校名称作为字符串 将具有学校Id和学校名称属性的目标学校列表说成:C# 在这种情况下,如何准备guid为逗号分隔的字符串?,c#,C#,嗨,我有一个普通的对象学校列表。以学校ID作为GUID,学校名称作为字符串 将具有学校Id和学校名称属性的目标学校列表说成: School Id Name 'C33BB532-895B-4DB7-BA59-1BC5B580902B'=> "S1" 'C33BB532-895B-4DB7-BA59-1BC5B580902B'=> "S2" 'C33BB532-895B-4DB7-BA59-1BC5B580902B'=>
School Id Name
'C33BB532-895B-4DB7-BA59-1BC5B580902B'=> "S1"
'C33BB532-895B-4DB7-BA59-1BC5B580902B'=> "S2"
'C33BB532-895B-4DB7-BA59-1BC5B580902B'=> "S3"
'3454D83D-68CA-4A9C-9185-1E49AE1C16DC'=> "S4"
'3454D83D-68CA-4A9C-9185-1E49AE1C16DC'=> "S5"
'3454D83D-68CA-4A9C-9185-1E49AE1C16DC'=> "S6"
我需要在选择项列表中这样的输出来填充下拉列表:
ID Value
'C33BB532-895B-4DB7-BA59-1BC5B580902B' => "S1,S2,S3"
'3454D83D-68CA-4A9C-9185-1E49AE1C16DC'=> "S4,S5,S6"
我正在使用c#和MVC。如何获取此信息?您可以使用
GroupBy
完成此操作。假设您的配对存储在如下类中:
class Pair {
public Guid Id {get;set;}
public string Val {get;set;}
}
您可以按如下方式生成所需的结果:
foreach (var g in data.GroupBy(p=>Id)) {
Console.WriteLine( // Change this to the desired destination
"{0} => {1}"
, g.Key // Produces GUID
, string.Join(",", g => g.Select(p=>p.Val)) // Makes a comma-separated list
);
}
在LINQ like中尝试分组
var res = from g in yourlist.GroupBy(c => c.Id)
select new { SchoolId = g.Key, SchoolName = string.Join(",", g.Select(gg => gg.name).ToArray()) };
什么清单?哪里向我们展示您是如何创建此列表的。
GroupBy
Id
,但您实际需要什么并不清楚。数据非常清楚。它是具有属性SchoolId和SchoolName的学校对象列表。s1,s2,s3…是名字。请检查答案并给出反馈。谢谢这对我有用。但代码中需要做一点修改。_groupItems.Add(_schools.FirstOrDefault().schoolGroupId,string.Join(“,”,_school.Select(s=>s.schoolName));