我有这样的数据文件:
我想计算数组中的每个元素。例如:10,2,2,2,2,2,2。那怎么办?
string FilePath = @"path";
int counteachelement = 0;
string fileContent = File.ReadAllText(FilePath);
string[] integerStrings = fileContent.Split(new char[] { '\n' }, StringSplitOptions.RemoveEmptyEntries);
for (int n = 0; n < integerStrings.Length; n++)
{
counteachelement = integerStrings.GetLength(n);
Console.Write(counteachelement + "\n");
}
答案 0 :(得分:3)
怎么样
List<int> Result = integerStrings.Select(x => x.Length).ToList();
答案 1 :(得分:1)
这里我修改了你的代码,以获得你正在使用的for循环中每个元素的计数 -
string FilePath = @"path";
int counteachelement = 0;
string fileContent = File.ReadAllText(FilePath);
string[] integerStrings = fileContent.Split(new char[] { '\n' }, StringSplitOptions.RemoveEmptyEntries);
int count = 0;
for (int n = 0; n < integerStrings.Length; n++)
{
count = integerStrings[n].Length;
}
答案 2 :(得分:1)
您可以使用File.ReadLines()
来避免一次将所有行保留在内存中,然后只需使用Enumerable.Select()
来挑选每行的长度。 (这假设您没有忽略或没有任何空行):
var lengths = File.ReadLines(FilePath).Select(s => s.Length);
Console.WriteLine(string.Join("\n", lengths));
答案 3 :(得分:1)
你可以使用javascript:
var arr=["39","9","139"];
var temp="";
for(i=0;i<arr.length;i++)
temp += (arr[i].length) + ", ";
alert("Lenght element array: " +temp.toString());
答案 4 :(得分:0)
您可以使用Linq
执行此操作
List<string> list = new List<string>();
list.Add("39");
list.Add("40");
list.Add("36");
list.Add("37");
list.Add("40");
list.Add("37");
list.Add("39");
var output = list.Select(i => i.Length);
Console.WriteLine(string.Join(" ",output));
//"2 2 2 2 2 2 2"
答案 5 :(得分:0)
string[] contents = File.ReadAllLines(@"myfile.txt");
foreach(var line in contents)
{
line.Length // this is your string length per line
}
答案 6 :(得分:0)
你可以,
var str = "2016-07-01 - this is data,39,40,36,37,40,37,";
var Result = str.Split(',').Select(p => p.Count()).ToList();
注意:我将您的输入视为逗号分隔值。