簡體   English   中英

解析一個字符串數組以檢查一個值有多少次

[英]Parse through an array of strings to check how many times there's a value

假設我有以下字符串數組:

string[] arrayToParse = {2, G, R, G, B};

我需要解析整個數組以檢查一個字符串存在多少次,以便最終得到這樣的值:

2
GG
R
B

因此,每次循環檢測到是否還有另一個相同的字符串時,他都會“連接”,然后將值添加到列表中。

如果再舉一個例子: string[] arrayToParse2 = {2, Q, T, T, U, U}應該以這些值結尾:

2
Q
TT
UU

任何人有幫助嗎?

使用LINQ( GroupBy方法)和string.Join

string[] arrayToParse = {"2", "G", "R", "G", "B"};

string[] results = arrayToParse.GroupBy(x => x)
                               .Select(g => string.Join(string.Empty, g))
                               .ToArray();

適用於兩個示例輸入。

您可以使用Linq:

var stringGroups = arrayToParse.GroupBy(str => str);

現在,您可以使用String.Join顯示這些組:

foreach(var group in stringGroups)
    Console.WriteLine(string.Join("", group));

我會使用LINQ方法。 如果它不可用或者您不想使用它,則可以使用更長的版本(如果您從未使用過LINQ,則更容易理解)。

string[] arrayToParse = {2, G, R, G, B};
List<String> parsedList = new List<String>

foreach(String sToParse in arrayToParse)
{
  if (parsedList.Count <= 0)
     parsedList.Add(sToParse);

  else
  foreach(String sInParsedList in parsedList)
  {
     if(sToParse == sInParsedList)
        sInParsedList += sToParse;

     else
     parsedList.Add(sToParse);
  }

 string[] parsedArray = parsedList.ToArray();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM