繁体   English   中英

使用linq检查另一个数组中是否存在来自一个数组的值

[英]Check if a value from one array exists in another array using linq

我有一个列表,其中myclass定义了一些属性

List<MyClass> myClassList = new List<MyClass>();
myClassList.Add(new MyClass() { Id = 1, Name = "My first test", Key = "First" });
myClassList.Add(new MyClass() { Id = 2, Name = "My second test", Key = "Second" });

然后我有一个路径,即c:\\ my folders \\ company name \\ My First Test,我使用正则表达式将其打入字符串数组,即myArrayPath

我想找到myClassList的任何基于给定属性的元素,即Name,可以在myArrayPath的任何元素中找到,理想情况下我想返回Key但是如果我返回匹配myArrayPath中的一个元素的对象,这也一样好。

有没有办法使用linq和/或lambda表达式来实现这一点。

谢谢。

使用LINQ可以很容易地做到这一点:

var keyResult = myClassList.Where(x=>myArrayPath.Contains(x.Name))
    .Select(x=>x.Key);

如果你需要以数组列表的形式,只需添加.ToList()或。 ToArray()在它的最后。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM