C# 我可以在常规列表中使用string.join吗
有没有办法获取泛型列表并将某个属性连接到逗号分隔的值中C# 我可以在常规列表中使用string.join吗,c#,C#,有没有办法获取泛型列表并将某个属性连接到逗号分隔的值中 public class Color { public int Id {get; set;} public string Name{get; set;} } List<Color> list = new List<Color>(); Color c1 = new Color() { Id = 1, Name = "red" } Color c2 = new Color() { Id = 2, Name =
public class Color
{
public int Id {get; set;}
public string Name{get; set;}
}
List<Color> list = new List<Color>();
Color c1 = new Color() { Id = 1, Name = "red" }
Color c2 = new Color() { Id = 2, Name = "blue" }
得到
"red, blue";
此扩展名
Join
代表LINQJoin
List<Color> list = new List<Color>();
list.Join(...)
此扩展名
Join
代表LINQJoin
List<Color> list = new List<Color>();
list.Join(...)
不,你不能。此方法定义为
string.Join(string, 字符串[])
。有一种方法可以完成你想做的事情:
string.Join(",", list.Select(c=>c.Name).ToArray());
不,你不能。此方法定义为
string.Join(string, 字符串[])
。有一种方法可以完成你想做的事情:
string.Join(",", list.Select(c=>c.Name).ToArray());
您可以对泛型使用String.Join。但要获得所需内容,必须对代码进行一些修改,否则会得到如下结果:
Namespace.Color, Namespace.Color
mrtig建议的方案A:
String.Join(",", list.Select(x=>x.Name))
选项B,使用ToString扩展您的类:
public class Color
{
public int Id {get; set;}
public string Name{get; set;}
public string ToString(){
return this.Name;
}
}
现在,您可以只使用:
String.Join(",",list) //where list is IEnumerable<Color>
String.Join(“,”列表)//其中列表是IEnumerable
您可以对泛型使用String.Join。但要获得所需内容,必须对代码进行一些修改,否则会得到如下结果:
Namespace.Color, Namespace.Color
mrtig建议的方案A:
String.Join(",", list.Select(x=>x.Name))
选项B,使用ToString扩展您的类:
public class Color
{
public int Id {get; set;}
public string Name{get; set;}
public string ToString(){
return this.Name;
}
}
现在,您可以只使用:
String.Join(",",list) //where list is IEnumerable<Color>
String.Join(“,”列表)//其中列表是IEnumerable
当然,从.NET 4开始,它有一个重载。您甚至可以通过使用重载来避免调用ToString
所以这两个都是有效的:
String.Join(",", new List<int> { 1, 2, 3 });
String.Join(",", new List<string> { "1", "2", "3" });
String.Join(“,”,新列表{1,2,3});
Join(“,”,新列表{“1”、“2”、“3”});
当然,从.NET 4开始,它有一个重载。您甚至可以通过使用重载来避免调用ToString
所以这两个都是有效的:
String.Join(",", new List<int> { 1, 2, 3 });
String.Join(",", new List<string> { "1", "2", "3" });
String.Join(“,”,新列表{1,2,3});
Join(“,”,新列表{“1”、“2”、“3”});
该方法还具有defention string.Join(string,IEnumerable)。该方法还具有defention string.Join(string,IEnumerable)。你需要ToString()覆盖:)@mrtig是的,我很匆忙。你应该得到被接受的答案:)你需要ToString()覆盖:)@mrtig是的,我很匆忙。你应该得到公认的答案:)