簡體   English   中英

字符串列表,其中用逗號分隔的值表示為整數

[英]String list with comma separated values to int list

作為較大程序的一部分,我需要將用逗號分隔的值的字符串列表轉換為必須以特定方式排列信息的Int列表。 換句話說,我有以下字符串listA:

**ListA(string)**

[0] "4, 0, 7, -1,"  

[1] "0, 1, 7, -1,"  

[2] "7, 1, 6, -1,"  

我想將其轉換為此int ListB:

**List B(int)**

 [0]    {int[4]}    

        [0] 4   
        [1] 0   
        [2] 7   
        [3] -1  

 [1]    {int[4]}

        [0] 0   
        [1] 1   
        [2] 7   
        [3] -1
 [2]    {int[4]}


        [0] 7   
        [1] 1   
        [2] 6   
        [3] -1

我一直在試圖找出方法,但我沒有設法正確。

如果您能幫助我,我將不勝感激!

非常感謝!

嘗試:

var listB = new List<string>() { "4, 0, 7, -1,", "0, 1, 7, -1,", "7, 1, 6, -1," }
    .Select(
        x => x.TrimEnd(',') //removing last ","
                .Split(',') //splitting string into array by ","
                .Select(int.Parse) //parsing string to int
                .ToList()
    ).ToList();

使用LINQ可以輕松完成

var a = new List<string> {"1, 2, 3, 4", "5, 6, 7, 8"};

List<int[]> b = a.Select(s => s.Split(new [] {", "}, StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToArray()).ToList();

使用LINQ更為簡潔,但這是您可以完成同一件事的另一種方式,只是將它們分開。

var stringList = new List<string>() { "4, 0, 7, -1,", "0, 1, 7, -1,", "7, 1, 6, -1," };
        var intList = new List<int[]>();

        foreach(var str in stringList)
        {
            // Call Trim(',') to remove the trailing commas in your strings
            // Use Split(',') to split string into an array
            var splitStringArray = str.Trim(',').Split(',');

            // Use Parse() to convert the strings as integers and put them into a new int array
            var intArray = new int[]
            {
                int.Parse(splitStringArray[0])
                ,int.Parse(splitStringArray[1])
                ,int.Parse(splitStringArray[2])
                ,int.Parse(splitStringArray[3])
            };

            intList.Add(intArray);
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM