首页 > 解决方案 > C#项目从模型列表中检查,并从模型返回特定参数

问题描述

我正在尝试检查来自的任何字符串是否e.ChatMessage.Message包含TrigerWorld(WorldToTrigger)来自 model的任何字符串TrigerWordFrazeCoSeObjevi它应该从 TrigerWords返回正确的短语 ( )。我试过这样。

感谢您的任何回答。

List<string> WordInMessage = e.ChatMessage.Message.Split(' ').ToList();

foreach (var item in WordInMessage)
{
    var items = (from x in TrigerWorlds
                 join y in WordInMessage on x.Source equals y
                 select x).ToList():
}

有模型类:

namespace FaxSoftware
{
    public class TrigerWorlds
    {
        public string WorldToTriger { get; set; }
        public string FrazeCoSeObjevi { get; set; }
    }
}

标签: c#

解决方案


为什么不使用.Intersect()

var triggerWords = new List<string> {"hello", "world"};
var words = e.ChatMessage.Message.Split(' ').ToList();

var hasTrigger = words.Intersect(triggerWords).Any()

如果消息中有任何触发词,这将为您提供一个布尔值。

请参阅文档:https ://docs.microsoft.com/en-us/dotnet/api/system.linq.enumerable.intersect?view=netcore-3.1#code-try-2


推荐阅读