【问题标题】:How to convert a c# comma separated values string into a list?如何将 C# 逗号分隔值字符串转换为列表?
【发布时间】:2012-06-18 13:12:31
【问题描述】:

我正在使用 C# ASP.NET 4 和 SQL Server 2008 R2

我从 sql server 得到一个对象标量,它是一个包含以下形式的逗号分隔值的字符串:

7, 12, ... 1, 65

我想将此对象转换为列表?

我想到了方向:

List<int> myList = new List<int>(new int[] (List)mySqlClass.mySqlQueryReturningAnObject("SELECT CLAUSE");

但这行不通。

如何将此对象转换为列表?


完整答案:

使用中的这个答案是根据选择的答案(更新前)

List<int> myList = new List<int>(mySqlClass.mySqlQueryReturningAnObject("SELECT CLAUSE").ToString().Split(',').Select(x => Convert.ToInt32(x)).ToList());

【问题讨论】:

标签: c#


【解决方案1】:
var intValues = line.Split(',').Select(x => Convert.ToInt32(x)).ToList();

更新

为确保您的代码能够处理 1,2,3,,,4,5,6 之类的字符串,您可以使用 String.Split 方法的重载

var intValues = line.Split(new[] {','}, StringSplitOptions.RemoveEmptyEntries)
                    .Select(x => Convert.ToInt32(x))
                    .ToList();

【讨论】:

    【解决方案2】:

    对字符串使用 .Split() 方法。它将返回一个字符串数组。

    string yourResult = "1,2,3,4,5";
    string[] resultsArray = yourResult.Split(new[] {','}, StringSplitOptions.RemoveEmptyEntries);
    

    【讨论】:

      【解决方案3】:

      你试过String.Split吗?

      你可以用这样简单的一行来分割你的字符串:

      var myString="1,2,4,5,6";
      var numberList=myString.Split(',');
      

      【讨论】:

        【解决方案4】:

        你可以使用简单的Array.ConvertAll指令,像这样:

        string str = "1,2,3,4,5,7,8,9";
        int[]resultInArray = Array.ConvertAll( str.Split(','), item => int.Parse(item));
        

        【讨论】:

          【解决方案5】:
                  private void TestParse()
                  {
                      string commaseparatedstring = "3, 5,6,19";
          
                      int parsedvalue = 0;
          
                      List<int> valuesint =
                          commaseparatedstring.Split(',').Select(elem => int.TryParse(elem, out parsedvalue) ? parsedvalue : 0).ToList(); 
          
                  }
          

          【讨论】:

            【解决方案6】:

            您可以尝试将结果分配给变量。

            然后将其转换为字符串(如果还没有的话)

            然后在逗号上进行字符串拆分并将结果分配给列表。

            【讨论】:

            • 我应该先学习基础知识。我正在寻找类似 List myList= myCSVstring.Split(',').ToList();但这会引发:无法将类型 'System.Collections.Generic.List' 隐式转换为 'System.Collections.Generic.List' 并且我找不到将字符串转换为 int 的位置。
            • 你需要它们作为 int 吗?如果不是,那么只需将您的列表设为字符串列表。实际上,您仍然可以这样做,然后当您从列表中读取它们时,您可以执行 Convert.ToInt32(listitem)
            • 是的,我需要它们作为整数。是的,我这样做了,我读取了字符串并在读取时将它们转换为整数。是否有在协助时执行此操作的语法?
            • 这篇文章可能有助于解决这个问题stackoverflow.com/questions/44942/…
            猜你喜欢
            • 2023-04-02
            • 1970-01-01
            • 2013-02-04
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多