2013-02-19 116 views
111

我的代码如下:转换列表到逗号分隔的字符串

public void ReadListItem() 
{ 
    List<uint> lst = new List<uint>() { 1, 2, 3, 4, 5 }; 
    string str = string.Empty; 
    foreach (var item in lst) 
     str = str + item + ","; 

    str = str.Remove(str.Length - 1); 
    Console.WriteLine(str); 
} 

输出:1,2,3,4,5

什么是对List<uint>转换成一个逗号分隔的字符串的最简单的方法是什么?

+6

'String.Join'是你所需要的。 – asawyer 2013-02-19 14:27:14

+6

'var csvString = String.Join(“,”,lst);'应该这样做。 – Mithrandir 2013-02-19 14:27:41

+2

对于任何想要重新打开它的人来说,如果它不是太本地化,它是一个重复的:http://stackoverflow.com/questions/799446/creating-a-comma-separated-list-from-iliststring-or-ienumerablestring – 2013-02-19 14:40:55

回答

199

享受!

Console.WriteLine(String.Join(",", new List<uint> { 1, 2, 3, 4, 5 })); 

String.Join将采取列表作为第二个参数,并加入所有使用作为第一个参数为一个单个字符串传递的字符串的元素。

+9

In。 NET 3.5及以下版本,你必须用'lst.ToArray()'显式地将你的列表转换为数组,因为那里还没有直接的重载。 – Anton 2013-12-15 11:09:00

53

您可以使用String.Join方法结合项目:

var str = String.Join(",", lst); 
23

使用String.Join

string.Join<string>(",", lst); 

使用LinqAggregation

lst .Aggregate((a, x) => a + "," + x); 
+1

我有int32类型的列表。当我使用你提到的聚合函数时,它说:“不能将lambda表达式转换为委托类型'System.Func ',因为块中的某些返回类型不能隐式转换为委托返回类型”和\t“不能隐式转换类型'字符串'为'int'“ – Hari 2015-01-14 12:31:24

+1

@Hari在将字符串转化为字符串之前,必须将其转换为字符串值。所以你可以这样做:list.Select(x => string.Format(“{0}:{1}”,x.Key,x.Value))。Aggregate((a,x)=> a +“ ,“+ x); – bets 2017-07-20 08:14:08

1

尝试

Console.WriteLine((string.Join(",", lst.Select(x=>x.ToString()).ToArray()))); 

HTH

8

关注这个:

 List<string> name = new List<string>(); 

     name.Add("Latif"); 
     name.Add("Ram"); 
     name.Add("Adam"); 
     string nameOfString = (string.Join(",", name.Select(x => x.ToString()).ToArray())); 
2
  @{ var result = string.Join(",", @user.UserRoles.Select(x => x.Role.RoleName)); 
       @result 

      } 

我在MVC Razor视图用于评估和印刷用逗号分隔的所有角色。

2

你可以参考下面的例子从列表中获取逗号分隔的字符串数组。

例子:

List<string> testList= new List<string>(); 
testList.Add("Apple"); // Add string 1 
testList.Add("Banana"); // 2 
testList.Add("Mango"); // 3 
testList.Add("Blue Berry"); // 4 
testList.Add("Water Melon"); // 5 

string JoinDataString = string.Join(",", testList.ToArray()); 
1

你可以,如果你使用的是.NET框架> 4.0使用的string.join这一点。

var result= String.Join(",", yourList); 
1

我们可以用逗号

string stations = 
haul.Routes != null && haul.Routes.Count > 0 ?String.Join(",",haul.Routes.Select(y => 
y.RouteCode).ToList()) : string.Empty; 
0
static void Main(string[] args){   
List<string> listStrings = new List<string>() { "C#", "Asp.Net", "SQL Server", "PHP", "Angular" }; 
string CommaSeparateString = GenerateCommaSeparateStringFromList(listStrings); 
Console.Write(CommaSeparateString); 
Console.ReadKey();} 
private static string GenerateCommaSeparateStringFromList(List<string> listStrings){return String.Join(",", listStrings);} 

Convert a list of string to comma separated string C#

4

尝试像这样单独列表enties如果你有整数的集合:

List<int> customerIds= new List<int>() { 1,2,3,3,4,5,6,7,8,9 }; 

你可以用string.Join得到一个字符串:

var result = String.Join(",", customerIds);