C#计算字符串数组

时间:2016-07-01 07:56:48

标签: c#

我有这样的数据文件:

  • 2016-07-01 - 这是数据
  • 39
  • 40
  • 36
  • 37
  • 40
  • 37

我想计算数组中的每个元素。例如: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");
        }

7 个答案:

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

注意:我将您的输入视为逗号分隔值。