リストをカンマ区切りの文字列に変換


158

私のコードは以下の通りです:

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>カンマ区切りの文字列に変換する最も簡単な方法は何ですか?


9
String.Joinは、あなたが必要とすることすべてです。
asawyer 2013

9
var csvString = String.Join(",", lst);それを行う必要があります。
ミトランジル2013

2
:あまりにも、それは重複だローカライズされていない場合は、これを再開したい人のためstackoverflow.com/questions/799446/...
ティムSchmelter

回答:


320

楽しい!

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

最初のパラメーター:","
2番目のパラメーター:new List<uint> { 1, 2, 3, 4, 5 })

String.Joinはリストを2番目のパラメーターとして受け取り、最初のパラメーターとして渡された文字列を使用してすべての要素を1つの文字列に結合します。


11
.NET 3.5以前lst.ToArray()では、直接のオーバーロードがまだないため、リストをで明示的に配列に変換する必要があります。
アントン


25

使用する String.Join

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

使用する Linq Aggregation

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

1
タイプint32のリストがあります。あなたが言った集約関数を使用すると、「ラムダ式をデリゲート型 'System.Func <int、int、int>'に変換できません。ブロック内の一部の戻り型はデリゲート戻り型に暗黙的に変換できないため」 「暗黙的に型 'string'を 'int'に変換できません」
Hari

1
@Hari文字列にAggragateする前に、文字列値に変換する必要があります。したがって、次のようなことができます:list.Select(x => string.Format( "{0}:{1}"、x.Key、x.Value))。Aggregate((a、x)=> a + " 、 "+ x);
賭ける

11

intのコレクションがある場合:

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

string.Join文字列を取得するために使用できます:

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

楽しい!


9

これに従ってください:

       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()));

4
          @{  var result = string.Join(",", @user.UserRoles.Select(x => x.Role.RoleName));
              @result

           }

MVC Razor Viewで使用して、すべての役割をコンマで区切って評価および印刷しました。



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

試す

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

HTH


1

このようにして、リストのエンティティをカンマで区切ることができます

string stations = 
haul.Routes != null && haul.Routes.Count > 0 ?String.Join(",",haul.Routes.Select(y => 
y.RouteCode).ToList()) : string.Empty;

0

あなたはJoinerと呼ばれるユーティリティクラスを持つgoogle-collections.jarを利用することができます

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

または

joinと呼ばれる関数を持つStringUtilsクラスを使用できます。StringUtilsクラスを利用するには、common-lang3.jarを使用する必要があります。

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

参考のために、このリンクを参照してくださいhttp://techno-terminal.blogspot.in/2015/08/convert-collection-into-comma-separated.html


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);}

文字列のリストをコンマ区切りの文字列に変換するC#


0

リスト項目に複数の文字列がある場合は、ToString()をオーバーライドすることもできます

public class ListItem
{

    public string string1 { get; set; }

    public string string2 { get; set; }

    public string string3 { get; set; }

    public override string ToString()
    {
        return string.Join(
        ","
        , string1 
        , string2 
        , string3);

    }

}

csv文字列を取得するには:

ListItem item = new ListItem();
item.string1 = "string1";
item.string2 = "string2";
item.string3 = "string3";

List<ListItem> list = new List<ListItem>();
list.Add(item);

string strinCSV = (string.Join("\n", list.Select(x => x.ToString()).ToArray()));

0
categories = ['sprots', 'news'];
categoriesList = ", ".join(categories)
print(categoriesList)

これは出力です:sprots、news


0

次のように、リストエンティティをカンマで区切ることができます。

//phones is a list of PhoneModel
var phoneNumbers = phones.Select(m => m.PhoneNumber)    
                    .Aggregate(new StringBuilder(),
                        (current, next) => current.Append(next).Append(" , ")).ToString();

// Remove the trailing comma and space
if (phoneNumbers.Length > 1)
    phoneNumbers = phoneNumbers.Remove(phoneNumbers.Length - 2, 2);
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.