Linq 比较两个列表 - 学习 linq

发布于 2024-09-18 10:39:47 字数 392 浏览 1 评论 0原文

我最近开始学习LINQ。基本上,为了更好地理解这项技术,我尝试使用 LINQ 重写我以前的一些程序。我的意思是我尝试用 linq 查询替换 foreach 方法等。

今天我遇到了一个问题。 我有一个对象元素列表

  List<Element> elementList 
 public  class Element
    {
        private string Id;
        private List<Element> consequentElementsList;


    }

元素列表包含放置在表单上的所有元素。每个元素都有一个连续元素的列表。 我需要找到我选择的元素的所有前辈元素。 在 LINQ 中有什么办法可以做到这一点吗?

I recently started learning LINQ. Bsically to understand this technology better I try to rewrite some of my previous programs using LINQ. I mean I try to replace foreach methods etc with linq queries.

Today I encounterd a problem.
I have a list of objects element

  List<Element> elementList 
 public  class Element
    {
        private string Id;
        private List<Element> consequentElementsList;


    }

List of elements contains all elements which are placed on form. Each element has a List of consequtive elements.
I need to find all predecessors element of element I've chosen.
Is there any way to do this in LINQ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

花之痕靓丽 2024-09-25 10:39:48

尝试一下:

var element = // a single element
var query = from e in elementList
            where e.consequentElementsList.Any(ce => ce.Id == element.Id)
            select e;

它从元素列表中检索每个元素,其中后续元素列表包含与您选择的 ID 匹配的任何元素。

当然,我忽略了 IdconsequentElementsList 在您的示例中是私有的这一事实。

Try this out:

var element = // a single element
var query = from e in elementList
            where e.consequentElementsList.Any(ce => ce.Id == element.Id)
            select e;

It retrieves each element from the element list where the consequent element list contains any element matching the ID you've selected.

Of course, I've ignored the fact that Id and consequentElementsList is private in your example.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文