簡體   English   中英

使用 LINQ 計算字符串中字母的出現次數

[英]Count the occurrences of a letter in a string with LINQ

我試圖實現一段代碼,它將返回字符串中指定字母的計數。 我可以使用 for 循環來做到這一點,但我發現使用 LINQ 表達式的解決方案更優雅。 這是我的代碼:

public static int CountAs(string countA)
{

    var test = count.Select(x => x == 'a').Count();
        
    return test;

}

我試圖計算countA參數中存在多少個小寫字母a。 我的代碼有什么問題?

先感謝您!

更新

我應該使用的方法是Where方法而不是Select方法。 使用它解決了我的問題:! function 可以重寫為:

public static int CountAs(string input)
{
   return input.Where(x => x == 'a').Count();
}

或者,您可以只使用 Count 方法直接過濾掉所需的字母:

public static int CountAs(string input)
{
   return input.Where(x => x == 'a').Count();
}

感謝所有前來救援的人!!

使用.Where而不是.Select .Where查找符合您的條件的項目,而.Select告訴它如何返回所述項目,如果您需要轉換它們。

您應該將.Count()與謂詞一起使用。 .Count()方法用於根據條件(謂詞)進行數據計算。

.Count()

返回序列中元素的數量。

同時.Select()用於數據投影/顯示。

.Select()

將序列的每個元素投影到新形式中。

因此,帶有.Select()的 output 計數將返回字符串的長度。

解決方案:根據帖子所有者的要求,僅計算字符串中較低的 'a' 的數量。

public static int CountLowerAs(string input)
{
    return input.Count(x => x == 'a');
}

暫無
暫無

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

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