gpt4 book ai didi

c# - 如何搜索 LinkedList 集合?

转载 作者:太空狗 更新时间:2023-10-29 17:33:14 25 4
gpt4 key购买 nike

我有一个 LinkedList<T> object 其中 T 是一个任意对象,它有一个名为 ID 的属性。我想使用 ID 作为搜索条件搜索我的收藏。

现在我知道我可以使用 while 循环搜索它:

LinkedListNode<MyObject> element = myObject.First;
while (element != myObject.Last)
{
if (element.Value.ID == myID)
break;

element = element.Next;
}

但我想知道是否有更优雅的解决方案。请注意,我需要 LinkedListNode<T>因此,以便从那里导航列表。

最佳答案

您可以编写扩展方法来获取节点序列并搜索:

public static IEnumerable<LinkedListNode<T>> Nodes<T>(this LinkedList<T> list)
{
for (var node = list.First; node != null; node = node.Next)
{
yield return node;
}
}

那么你可以做

var matchingNode = list.Nodes().FirstOrDefault(n => n.Value.Id == myId);

关于c# - 如何搜索 LinkedList<T> 集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19953848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com