C# 如何在C中将字符串[]转换为int#

C# 如何在C中将字符串[]转换为int#,c#,C#,我是一个C#程序员,我的代码中有一个字符串问题。 我想知道如何转换此字符串: x = {"1","2","0",",","1","2","1",",","1","2","2"} 变成这样: x = {"120","121","122"} 变量x被指定为string,我希望它被指定为int。这是为了得到120到130之间的数字,在我的字符串中是3 非常感谢。您应该首先将3个字符串相加,以获得正确的“120”、“121”、“122”字符串 然后您可以使用forloop或类似的方法来执行val.

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

x = {"1","2","0",",","1","2","1",",","1","2","2"} 
变成这样:

x = {"120","121","122"}
变量x被指定为string,我希望它被指定为int。这是为了得到120到130之间的数字,在我的字符串中是3


非常感谢。

您应该首先将3个字符串相加,以获得正确的“120”、“121”、“122”字符串 然后您可以使用forloop或类似的方法来执行val.toint()

编辑:


将列表从list String更改为Int并保留相同的变量对我来说似乎没有必要

我认为您可以通过以下三行来完成:

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)在分隔符上拆分字符串(在您的示例中,分隔符似乎是逗号)


祝你好运

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

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

不知道为什么要这样做,但使用LINQ to Objects basic
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);
更新日期2014年5月23日

根据注释,这里有一些代码可以执行您想要的操作(即,计算120-130范围内的数字)

var最小值=120;
var max=130;
变量计数=y
.Select(o=>Int32.Parse(o))
.Count(o=>(min
string[]x={“1”、“2”、“0”、“1”、“2”、“1”、“1”、“1”、“1”、“2”);
StringBuilder sb=新的StringBuilder();
foreach(x中的变量项)
{
某人附加(项目);
}
字符串str=sb.ToString();
字符串[]myArr=str.Split(',');
int[]numar=新int[myArr.Length];
对于(int i=0;i
只要稍加努力,你就能找到这一点(你不应该只是发布一个问题,下次请做一些研究),但问题无论如何都在这里:

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

这是一种简单易懂的方法。循环本身就很好地解释了它。

在您寻找的示例中,
x
仍然是一个数组。如果您希望它是一个
int
,那么它必须是120121122,或者您需要3个变量。因此,实际上您有一个字符串包含
x={“1”、“2”、“0”、“1”、“2”,“1”、“1”、“2”、“2”}
?或者字符串变量x是
{“1”、“2”、“0”、“1”、“1”、“1”、“1”、“2”、“2”}
?或者你有字符串数组吗?我有一个字符串数组,但你在回答中不使用LINQ来处理对象,只使用基本的字符串函数:-)哈哈,喊得好,我的心在哪里..谢谢,伙计,这帮了我。但是,我怎么能把s的值转换成整数呢?我想数一数在这之后有多少个数字在一个范围内,因为os s的值是一个字符串。你能帮我吗?要把字符串转换成整数,你可以使用静态方法
Int32.Parse(s)
,我不太明白你所说的“计算一个范围内有多少个数字”是什么意思,你能再解释一下吗?我想找到这样一个范围内的总数:max=130;min=120;然后在我的示例中,总数是3。这就是我想要的:)
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]);
}
        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]);
        }