gpt4 book ai didi

C# - 如何使用 Linq 和 Regex 从单个字符串实现多重匹配?

转载 作者:行者123 更新时间:2023-11-30 23:30:30 25 4
gpt4 key购买 nike

我有这样一个字符串:var str = "My name is John, her name is Fonda and his name is Donald"

我在可枚举集中有 3 个对象,例如:

var boy = new Person({name="John"});
var girl = new Person({name="Fonda"});
var son = new Person({name="Donald"});
new other = new Person({name="Mike"});
new other2 = new Person({name="Roger"});

假设 resultSet 包含上述所有对象。

var resultSet = new IEnumerable<Person>();

这是我的问题:

我想对该集合进行 Linq 查询,以返回所有匹配的对象(如果它们在给定字符串中)。

我认为这很可能通过使用 Regex 来实现,但我不知道如何实现:S

提前致谢!

最佳答案

你可以使用Contains方法:

var str = "My name is John, her name is Fonda and his name is Donald";
var result= resultSet.Where(p=>str.Contains(p.name));

如果您想避免部分结果,您可以将 Split 应用于您的句子,并使用 Any 扩展方法执行以下查询:

var str = "My name is John, her name is Fonda and his name is Donald";
var strArray= str.Split( new [] {' ', ','});
var result= resultSet.Where(p=>strArray.Any(s=>s==p.name));

关于C# - 如何使用 Linq 和 Regex 从单个字符串实现多重匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34964452/

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