将项目添加到列表的其他方式<>

发布于 2024-08-26 14:59:41 字数 410 浏览 7 评论 0 原文

在我的其他问题中,您可以看到我的代码arr 结构和 PriorityQueue 集合。我通常会像这样将项目添加到这个集合中:

arr.PriorityQueue.Add(new element((value(item, endPoint) + value(startPoint, item)),item));

我很好奇还有其他方法可以做到这一点(将元素(即结构)对象添加到列表中)?例如以 lambda 方式?我只是渴望知识:)

In my other question You can see code of my arr structure and PriorityQueue collection. I normally add items to this collection like that:

arr.PriorityQueue.Add(new element((value(item, endPoint) + value(startPoint, item)),item));

I am curious that is other way to do this (add element(which is struct) object to List) ? In lambda way for example ? I just eager for knowledge :)

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

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

发布评论

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

评论(3

情绪 2024-09-02 14:59:41

要将新对象添加到列表中,您需要实例化它。

你这样做的方式是正确的,没有 lambda 语法或其他语法糖手术。

To add a new object to a list, you need to instantiate it.

The way you are doing it is correct, there is not lambda syntax or other syntactic sugar for this operation.

孤城病女 2024-09-02 14:59:41

另一种方法是使用 List.AddRange。它接受 IEnumerable,因此您可以向它传递任何 T 集合,包括数组或 Linq 表达式的结果:

importantItems.AddRange(allItems.Where(item => item.IsImportant));

Another way is to use List.AddRange. It accepts an IEnumerable<T>, so you can pass it any collection of T, including arrays or the results of Linq expressions:

importantItems.AddRange(allItems.Where(item => item.IsImportant));
东北女汉子 2024-09-02 14:59:41
  arrays arr = new arrays();
        arr.PriorityQueue = new List<element>(
            new [] { 
                new element {node = 1, priority =2 }, 
                new element { node = 2, priority = 10}
                //..
                //..
            });


        arrays arr2 = new arrays();
        arr2.PriorityQueue = new List<element>(
            arr.PriorityQueue
            );


        arrays arr3 = new arrays();
        arr3.PriorityQueue = new List<element>(arr2.PriorityQueue.FindAll(z => (1 == 1)));


        arrays arr4 = new arrays();
        arr4.PriorityQueue = new List<element>(arr3.PriorityQueue.ToArray());
  arrays arr = new arrays();
        arr.PriorityQueue = new List<element>(
            new [] { 
                new element {node = 1, priority =2 }, 
                new element { node = 2, priority = 10}
                //..
                //..
            });


        arrays arr2 = new arrays();
        arr2.PriorityQueue = new List<element>(
            arr.PriorityQueue
            );


        arrays arr3 = new arrays();
        arr3.PriorityQueue = new List<element>(arr2.PriorityQueue.FindAll(z => (1 == 1)));


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