簡體   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