在这种情况下,如何使用 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 一起使用。我怎样才能得到这个?
你可以用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()) };