欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

通過LinQ查詢字符出現(xiàn)次數(shù)的實例方法

 更新時間:2013年11月19日 09:10:21   作者:  
這篇文章主要介紹了通過LinQ查詢字符出現(xiàn)次數(shù)的實例方法,大家參考使用吧

在一個項目中使用到一個問卷調(diào)查,在用戶完成之后,需要統(tǒng)計所有題目中哪一個選項被選中次數(shù)最多。
我的實現(xiàn)方法是將所有題目選中的選項拼接為一個字符串,如:ABCADAA
在分析被選中次數(shù)的時候最初是將字符串變?yōu)樽址麛?shù)組,然后進行遍歷統(tǒng)計,代碼如下:

復制代碼 代碼如下:

public static int GetMaxDiaplayChar(string str, out string val)
{
    int times = 0;
    val = "";
    char max = str[0];
    Dictionary<char, int> counter = new Dictionary<char, int>();
    foreach (char c in str)
    {
        if (!char.IsLetter(c)) continue;
        if (counter.ContainsKey(c)) counter[c]++;
        else counter.Add(c, 1);
        if (counter[max] < counter[c]) max = c;
    }
    times = counter[max];
    val = max.ToString();
    return times;
}

這樣進行統(tǒng)計效率一般,且感覺有些太復雜了,于是在后期使用LinQ來進行改進,實現(xiàn)方法如下:

復制代碼 代碼如下:

string content = "ABCADAA";
var ch = content.ToCharArray();
var query = ch.GroupBy(s => s).OrderByDescending(s => s.Count()).ToList();
for (int ri = 0; ri < query.Count(); ri++)
{
    MessageBox.Show(query[ri].Key + " = " + query[ri].Count());
}

這樣就可以比較簡單的統(tǒng)計具體出現(xiàn)次數(shù),如果需要對出現(xiàn)最少或者最多的字符進行統(tǒng)計,只需要對OrderBy和ToList進行修改就可以,比較靈活。

復制代碼 代碼如下:

var queryMax = ch.GroupBy(s => s).OrderByDescending(s => s.Count()).SingleOrDefault();
var queryMin = ch.GroupBy(s => s).OrderBy(s => s.Count()).SingleOrDefault();

相關(guān)文章

  • WinForm自定義函數(shù)FindControl實現(xiàn)按名稱查找控件

    WinForm自定義函數(shù)FindControl實現(xiàn)按名稱查找控件

    這篇文章主要介紹了WinForm自定義函數(shù)FindControl實現(xiàn)按名稱查找控件,需要的朋友可以參考下
    2014-08-08
  • 詳解C#之事件

    詳解C#之事件

    這篇文章主要介紹了C#之事件的知識點,文中代碼非常詳細,幫助大家更好的理解和學習,感興趣的朋友可以參考下
    2020-06-06
  • 詳解 c# 克隆

    詳解 c# 克隆

    這篇文章主要介紹了詳解 c# 克隆的相關(guān)資料,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2020-11-11
  • C#套接字(Socket)通信之UDP組播詳解

    C#套接字(Socket)通信之UDP組播詳解

    單播 Unicast是指客戶端與服務器之間的點到點連接,組播和單播的差別是,必須得有一個“組”的概念,然后才能進行組播,本文就來和大家講講UDP組播的實現(xiàn)吧
    2023-05-05
  • c#多線程程序設計實例方法

    c#多線程程序設計實例方法

    在本篇文章里小編給大家分享了關(guān)于c#多線程程序設計實例步驟,需要的朋友們學習參考下。
    2019-02-02
  • C#類中static變量用法分析

    C#類中static變量用法分析

    這篇文章主要介紹了C#類中static變量用法,實例分析了static變量使用技巧與相關(guān)注意事項,需要的朋友可以參考下
    2015-01-01
  • C# 實現(xiàn)SDL2進行視頻播放窗口截圖和字幕添加

    C# 實現(xiàn)SDL2進行視頻播放窗口截圖和字幕添加

    這篇文章主要介紹了C# 實現(xiàn)SDL2進行視頻播放窗口截圖和字幕添加,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • Unity實現(xiàn)毫秒延時回調(diào)功能

    Unity實現(xiàn)毫秒延時回調(diào)功能

    這篇文章主要為大家詳細介紹了Unity實現(xiàn)毫秒延時回調(diào)功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • .NET的深復制方法(以C#語言為例)

    .NET的深復制方法(以C#語言為例)

    深復制需要將對象實例中字段引用的對象也進行復制,在平時的編程工作中經(jīng)常要用到這種復制方式,下面以c#為例來演示一下方法。
    2016-10-10
  • C#刪除最后一個結(jié)尾逗號的方法

    C#刪除最后一個結(jié)尾逗號的方法

    這篇文章主要介紹了C#刪除最后一個結(jié)尾逗號的方法,涉及C#、操作字符串的技巧,簡單實用,非常具有實用價值,需要的朋友可以參考下
    2015-03-03

最新評論