我是C#程序员的开销者,我的代码中有一个字符串有问题。 我想知道如何转换这个字符串:
x = {"1","2","0",",","1","2","1",",","1","2","2"}
这样的事情:
x = {"120","121","122"}
变量x被指定为字符串,我希望它被指定为int。这样做的目的是得到120和130之间的数字,在我的字符串中将是3。
非常感谢。
答案 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]);
}
这是一种简单易懂的方法。循环几乎解释了它自己