Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在这种情况下,如何准备guid为逗号分隔的字符串?_C# - Fatal编程技术网

C# 在这种情况下,如何准备guid为逗号分隔的字符串?

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'=>

嗨,我有一个普通的对象学校列表。以学校ID作为GUID,学校名称作为字符串

将具有学校Id和学校名称属性的目标学校列表说成:

                  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));