现在我知道我可以使用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);