gpt4 book ai didi

c# - WPF 列表过滤

转载 作者:太空宇宙 更新时间:2023-11-03 11:37:10 24 4
gpt4 key购买 nike

我是 WPF 的新手,所以这可能是一个简单的问题。我有一个应用程序可以从 csv 文件中读取一些单词并将它们存储在字符串列表中。我想要做的是将这个列表参数化以显示我列表中最流行的单词。所以在我的用户界面中,我想要一个文本框,当我输入一个数字时,例如5 将过滤原始列表,在新列表中只留下 5 个最流行(最常用)的词。任何人都可以协助完成这最后一步吗?谢谢-

public class VM
{
public VM()
{
Words = LoadWords(fileList);
}

public IEnumerable<string> Words { get; private set; }

string[] fileList = Directory.GetFiles(@"Z:\My Documents\", "*.csv");


private static IEnumerable<string> LoadWords(String[] fileList)
{

List<String> words = new List<String>();
//
if (fileList.Length == 1)
{

try
{
foreach (String line in File.ReadAllLines(fileList[0]))
{
string[] rows = line.Split(',');

words.AddRange(rows);
}

}
catch (Exception ex)
{
System.Windows.MessageBox.Show(ex.Message, "Problem!");
}

}

else
{
System.Windows.MessageBox.Show("Please ensure that you have ONE read file in the source folder.", "Problem!");

}
return words;
}

}

最佳答案

按单词分组并按单词降序计数排序的 LINQ 查询应该可以做到这一点。试试这个

private static IEnumerable<string> GetTopWords(int Count)
{
var popularWords = (from w in words
group w by w
into grp
orderby grp.Count() descending
select grp.Key).Take(Count).ToList();
return popularWords;
}

关于c# - WPF 列表过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5895077/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com