2013-02-19 3 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

+6

'var csvString = String.Join (", ", lst);' должен делать это. – Mithrandir

+2

Для тех, кто хочет снова открыть его, если он не слишком локализован, это дубликат: http://stackoverflow.com/questions/799446/creating-a-comma-separated-list-from-iliststring-or-ienumerablestring –

ответ

199

Наслаждайтесь!

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

String.Join будет взять список в качестве второго параметра и присоединиться ко всем элементам, используя строку, переданную в качестве первого параметра в одной строке.

+9

In. NET 3.5 и ниже вам нужно явно преобразовать ваш список в массив с помощью 'lst.ToArray()', поскольку там нет прямой перегрузки. – Anton

53

Вы можете использовать String.Join способ объединения элементов:

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

Использование String.Join

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

Использование LinqAggregation

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

У меня есть список типов int32. когда я использую агрегированную функцию, которую вы упомянули, она говорит: «Невозможно преобразовать лямбда-выражение для делегирования типа« System.Func », потому что некоторые типы возвращаемых данных в блоке неявно не конвертируются в тип возвращаемого делегата» и \t «Невозможно неявно преобразовать тип 'string' to 'int' " – Hari

+1

@Hari Вы должны преобразовать его в строковые значения, прежде чем вы перейдете в строку. Итак, вы можете сделать что-то вроде этого: list.Select (x => string.Format ("{0}: {1}", x.Key, x.Value)). Агрегат ((a, x) => a + " , "+ x); – bets

1

Попробуйте

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

НТН

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 View для оценки и печать всех ролей, разделенных запятыми.

0

вы можете использовать Google-collections.jar, который имеет класс утилита под названием Столяр

String commaSepString=Joiner.on(",").join(lst); 

или

вы можете использовать StringUtils класс, который имеет функцию под названием join.To использовать класс StringUtils , вам нужно использовать синфазного lang3.jar

String commaSepString=StringUtils.join(lst, ','); 

для справки, обратитесь по ссылке http://techno-terminal.blogspot.in/2015/08/convert-collection-into-comma-separated.html

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

Вы можете использовать string.join для этого, если вы используете .NET Framework> 4.0.

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

Мы можем попробовать, как это отдельный список enties запятой

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

Если у вас есть коллекция Интс:

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

Вы можете использовать string.Join, чтобы получить строку:

var result = String.Join(",", customerIds); 
Смежные вопросы