Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.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# 我可以在常规列表中使用string.join吗_C# - Fatal编程技术网

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
代表LINQ
Join

List<Color> list = new List<Color>();
list.Join(...)

此扩展名
Join
代表LINQ
Join

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是的,我很匆忙。你应该得到公认的答案:)