1

我正在使用 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());

4

6 回答 6

17
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();
于 2012-06-18T13:14:45.567 回答
5

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

string yourResult = "1,2,3,4,5";
string[] resultsArray = yourResult.Split(new[] {','}, StringSplitOptions.RemoveEmptyEntries);
于 2012-06-18T13:13:51.350 回答
2

你试过String.Split吗?

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

var myString="1,2,4,5,6";
var numberList=myString.Split(',');
于 2012-06-18T13:14:52.497 回答
2

您可以使用简单的Array.ConvertAll指令,如下所示:

string str = "1,2,3,4,5,7,8,9";
int[]resultInArray = Array.ConvertAll( str.Split(','), item => int.Parse(item));
于 2012-06-18T13:17:21.463 回答
2
        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(); 

        }
于 2012-06-18T13:28:31.887 回答
0

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

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

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

于 2012-06-18T13:15:42.153 回答