3

我有一个列表,其中 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 folder\company name\My First Test,我使用正则表达式分解成一个字符串数组,即 myArrayPath

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

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

谢谢。

4

1 回答 1

11

这可以通过 LINQ 轻松完成:

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

如果您需要以数组列表的形式使用它,只需添加.ToList()or 。ToArray()最后。

于 2013-09-20T16:39:21.637 回答