C#搜索存储在剪贴板中的单词并将搜索到的单词输出到剪贴板
Posted
技术标签:
【中文标题】C#搜索存储在剪贴板中的单词并将搜索到的单词输出到剪贴板【英文标题】:C# search for words stored in clipboard and output searched words to the clipboard 【发布时间】:2022-01-16 23:43:20 【问题描述】:我是 C# 新手,需要帮助格式化此代码,我尝试从剪贴板读取特定单词,然后将其输出回剪贴板。我需要在字符串列表搜索中添加无穷无尽的数字或单词。
Text = Clipboard.GetText();
string Text = "Text to analyze for words, chair, table";
List<string> words = new List<string> "chair", "table", "desk" ;
var result = words.Where(i => Text.Contains(i)).ToList();
TextOut = Clipboard.SetText();
\\outputs “chair, table” to the clipboard
【问题讨论】:
【参考方案1】:您遇到的问题是result
是一个单词列表,但您不能在剪贴板上放置一个列表。你必须把它变成一个字符串。
您可以使用 Join 方法 (string.Join) 执行此操作,并指定要在单词之间放入的内容,即逗号和空格:
//string Text = Clipboard.GetText();
string Text = "Text to analyze for words, chair, table";
List<string> words = new List<string> "chair", "table", "desk" ;
// No need for ToList - the enumerable will work with Join
IEnumerable<string> foundWords = words.Where(i => Text.Contains(i));
string result = string.Join(", ", foundWords);
Clipboard.SetText(result);
【讨论】:
【参考方案2】:您的代码几乎没问题。
我认为你需要用空格或逗号分隔剪贴板中的单词,但你需要找到一些东西来做到这一点。
然后:
var Text = Clipboard.GetText();
//imagine you have words, chair, table
//you split to have an array containing
var arrayString = Text.Split(',')
List<string> wordsToSearch = new List<string> "chair", "table", "desk" ;
//you check your list
var result = wordswordsToSearch.Where(i => arrayString.Contains(i)).ToList();
//and set clipboard with matching content
var TextOut = Clipboard.SetText(result);
\\outputs “chair, table” to the clipboard
我不知道我的代码是否有效,但这是我从您的需求中理解的想法。
【讨论】:
我认为你应该测试一下它是否有效,Alexandre Castro! result 是一个列表,但您不能将 SetText 与列表一起使用,因此您的代码无法编译。 如果输入的列表已经用逗号分隔,我还需要拆分文本吗? var result = wordswordsToSearch.“words”应该在哪里出现两次?以上是关于C#搜索存储在剪贴板中的单词并将搜索到的单词输出到剪贴板的主要内容,如果未能解决你的问题,请参考以下文章
如何将css添加到与搜索框中的单词匹配的div中的单词? [复制]
如何在包含单词、三个字母月份和两位数字年份的字符串中搜索月份和年份并将它们转换为 SQL 中的日期?