如何在C#中将string []转换为int

时间:2014-05-22 13:52:40

标签: c#

我是C#程序员的开销者,我的代码中有一个字符串有问题。 我想知道如何转换这个字符串:

x = {"1","2","0",",","1","2","1",",","1","2","2"} 

这样的事情:

x = {"120","121","122"}

变量x被指定为字符串,我希望它被指定为int。这样做的目的是得到120和130之间的数字,在我的字符串中将是3。

非常感谢。

7 个答案:

答案 0 :(得分:2)

string[] x = { "1", "2", "0", ",", "1", "2", "1", ",", "1", "2", "2" };
int[] y = string.Join(string.Empty, x)
                .Split(',')
                .Select(s => int.Parse(s))
                .ToArray();

答案 1 :(得分:1)

我认为你可以用以下三行来做到这一点:

var x = new []{"1", "2", "0", ",", "1", "2", "1", ",", "1", "2", "2"};
var fullString = String.Join("", x, 0, x.Length);

// get as a string array:
// x = fullString.Split(new[] {','});

// get as an integer array:
var intArray = (fullString.Split(new[] {','}))
                  .Select(_ => Int32.Parse(_)).ToArray();

在步骤中,这是(1)创建字符串,(2)连接字符串,(3)将字符串拆分为分隔符(在您的情况下看起来像逗号)。

祝你好运!

答案 2 :(得分:1)

不确定为什么要这样做但是从来没有那么简单地使用 LINQ to Objects 基本String方法来实现。

var x = new string[] { "1", "2", "0", ",", "1", "2", "1", ",", "1", "2", "2" };
var y = String.Join(String.Empty, x).Split(',');

foreach (var s in y)
    Console.WriteLine(s);

更新23/05/2014

根据评论,这里有一些代码可以做你想要的(即计算120-130范围内的数字)。

var min = 120;
var max = 130;

var count = y
    .Select(o => Int32.Parse(o))
    .Count(o => (min <= o) && (o <= max));

Console.WriteLine(count);

答案 3 :(得分:0)

您应该首先将3个字符串添加到一起,以获得正确的“120”,“121”,“122”作为字符串 然后你可以使用forloop或类似的东西做val.toint();

编辑:

将列表从列表字符串更改为Int并保持相同的变量对我来说似乎没有用

答案 4 :(得分:0)

这是一种使用多种字符串方法和LINQ的方法:

string[] x = { "1", "2", "0", ",", "1", "2", "1", ",", "1", "2", "2" };
string all = string.Join("", x); // "120,121,122"
string[] parts = all.Split(','); // { "120", "121", "122" }
int i = int.MinValue;            // variable which is used in below query
int[] y = parts                                // LINQ query
    .Where(s => int.TryParse(s.Trim(), out i)) // filters out invalid strings
    .Select(s => i)                            // selects the parsed ints
    .ToArray();                                // creates the final array

答案 5 :(得分:0)

string[] x = { "1", "2", "0", ",", "1", "2", "1", ",", "1", "2", "2" };
StringBuilder sb = new StringBuilder();

foreach (var item in x)
{
    sb.Append(item);
}

string str = sb.ToString();
string[] myArr = str.Split(',');

int[] numArr = new int[myArr.Length];

for (int i = 0; i < myArr.Length; i++)
{
    numArr[i] = int.Parse(myArr[i]);
}

答案 6 :(得分:0)

付出一点努力,你就能找到这个,(你不应该只是发一个问题,下次再做一些研究)但是问题就在这里:

        string[] items;
        items = new string[5];
        int[] intitems;
        intitems = new int[5];

        foreach (string item in items)
        {
            int i = 0;
            int.TryParse(items[i], out intitems[i]);
        }

这是一种简单易懂的方法。循环几乎解释了它自己