繁体   English   中英

C#计算字符串数组中的每个元素

[英]C# count each element in string array

我有这样的数据文件:

  • 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");
        }

怎么样

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM