[英]C# count each element in string array
我有这样的数据文件:
我想计算数组中的每个元素。 例如: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");
}
怎么样
List<int> Result = integerStrings.Select(x => x.Length).ToList();
在这里,我修改了您的代码以获取您正在使用的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;
}
您可以使用File.ReadLines()
避免一次将所有行都保留在内存中,然后只需使用Enumerable.Select()
挑选出每行的长度即可。 (这假设您没有忽略或没有任何空行):
var lengths = File.ReadLines(FilePath).Select(s => s.Length);
Console.WriteLine(string.Join("\n", lengths));
您可以使用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());
您可以使用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"
string[] contents = File.ReadAllLines(@"myfile.txt");
foreach(var line in contents)
{
line.Length // this is your string length per line
}
你可以做,
var str = "2016-07-01 - this is data,39,40,36,37,40,37,";
var Result = str.Split(',').Select(p => p.Count()).ToList();
注意:我正在考虑将您的输入作为逗号分隔的值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.