c# - 从文本框 C# 中搜索匹配键的字典
问题描述
我正在阅读一个包含缩写和完整版本的 csv 文件,例如 LOL,Laughing out Loud。我创建了一个字典,其中缩写是键,完整版本是值。
'''
private void btnFilter_Click(object sender, RoutedEventArgs e)
{
var keys = new List<string>();
var values = new List<string>();
using (var rd = new StreamReader("textwords.csv"))
{
while (!rd.EndOfStream)
{
var splits = rd.ReadLine().Split(',');
keys.Add(splits[0]);
values.Add(splits[1]);
}
}
var dictionary = keys.Zip(values, (k, v) => new { Key = k, Value = v }).ToDictionary(x => x.Key, x => x.Value);
foreach (var k in dictionary)
{
//
}
aMessage.MessageContent = txtContent.Text;
}
'''
我正在使用一个按钮来检查文本框 txtContent 是否包含文本中的任何缩写并将其更改为完整版本。因此,如果文本框包含以下内容。单击按钮后,“将要AFK”将其更改为“将要远离键盘”。
我想编写一个 foreach 循环来检查任何缩写,拉长它们,然后将其保存到字符串变量 MessageContent 中。
任何人都可以向我展示解决此问题的最佳方法,因为我不确定如何使用来自文本框的输入来执行此操作?
谢谢
解决方案
您可以只使用 LINQ 来读取和创建字典对象:
var dictionary = File.ReadAllLines(@"textwords.csv")
.Select(x => x.Split(",",StringSplitOptions.RemoveEmptyEntries))
.ToDictionary(key => key.FirstOrDefault().Trim(),
value => value.Skip(1).FirstOrDefault().Trim());
推荐阅读
- macos - 多个 USB 设备在 Mac OS 上显示为一个
- c# - Winforms中的消息框内的下拉/选择
- r - 如何根据 R 中的属性将空间数据从另一个网络添加到 OSM 网络中的链接?
- c# - 决定批量写作的模式
- azure-devops - Azure DevOps:更改状态用于确定仪表板上速度图表的速度
- node.js - 部署 heroku 应用程序时遇到问题:应用程序无法绑定到 $port
- c++ - 修改链表主函数代码,用户将在其中输入节点的索引和数据,并带有适当的消息
- javascript - 从 React 组件中先前请求的响应中异步获取新资源
- swift - 如何在ios中的JSQMessagesViewController中的Incoming Buble下方添加时间
- python - 为什么先前定义的 python 变量仍然会导致“赋值前引用”错误?