在这种情况下,如何使用 GUID 准备逗号分隔的字符串

本文关键字:分隔 字符串 这种情况下 何使用 GUID | 更新日期: 2023-09-27 18:37:10

嗨,我有通用列表ob对象学校。 将学校 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 一起使用。我怎样才能得到这个?

在这种情况下,如何使用 GUID 准备逗号分隔的字符串

你可以用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 中分组,例如

var res = from g in yourlist.GroupBy(c => c.Id)
          select new { SchoolId = g.Key, SchoolName = string.Join(",", g.Select(gg => gg.name).ToArray()) };