找到包含返回匹配的包含
问题描述:
我需要返回比较文本块和字符串列表时发现的所有匹配项。找到包含返回匹配的包含
if(myList.Any(myText.Contains))
我可以验证是否存在与上面的匹配,但我不知道如何去更进一步并返回匹配的字符串。我查看了Intersect,但据我了解,它只能用于两种相同类型。
的样本数据:
myList[] = { "City of London", "City of Edinburgh" }; etc
myText = "I am applying for the position in the City of London";
这里期望的结果将是“伦敦金融城”,或者通过设定所产生的匹配作为一个字符串,或返回myList中的索引。任何帮助非常感谢,谢谢!
答
这应该工作。
List<string> myList = new List<string>();
myList.Add("City of London");
myList.Add("City of Edinburgh");
string myText = "I am applying for the position in the City of London";
var result = myList.Where(x => myText.Contains(x)).ToList();
+0
非常感谢您的帮助,似乎也能做到这一点。为了检查结果作为一个字符串,我添加了:string match = string.Join(“,”,result.ToArray()); – Penta
答
试试这个:
string result= myList.FindAll(x=> myText.IndexOf(x)>-1);
答
var matches = myList.Where(a => myText.IndexOf(a) > 0).ToList();
“伦敦市”不是“我在伦敦申请的职位” – Agalo
重新@Agalo,我已经编辑我的问题,以反映,由于确定性的匹配。 – Penta