C# 如何使用linq更新linkedlist中的节点值
我想使用linq更新链接列表中的节点值。遍历列表、找到正确的节点并更新值是可行的,但我认为linq方法可能更干净 这是我的尝试,导致编译错误C# 如何使用linq更新linkedlist中的节点值,c#,linq,linked-list,find,C#,Linq,Linked List,Find,我想使用linq更新链接列表中的节点值。遍历列表、找到正确的节点并更新值是可行的,但我认为linq方法可能更干净 这是我的尝试,导致编译错误无法将lambda表达式转换为类型,因为它不是委托类型: // get IV value where Node BookID=4 var val = Globals.BookLL.Where(B => B.BookID == 4).Select(B => B.IV).Single(); // can update first node usin
无法将lambda表达式转换为类型,因为它不是委托类型:
// get IV value where Node BookID=4
var val = Globals.BookLL.Where(B => B.BookID == 4).Select(B => B.IV).Single();
// can update first node using this method
Globals.BookLL.First.Value.IV = 999;
// can upddate IV by traversing list
LinkedListNode<Globals.Node> Current = Globals.BookLL.First;
while (Current != null)
{
if(Current.Value.BookID==4)
{
Current.Value.IV = 444;
}
Current = Current.Next;
}
// how can you update IV using linq?
Globals.BookLL.Find(B => B.BookID == 4).Value.IV = 999; // cannot convert lambda expression to type <Main.Globals.Node> because it is not a delegate type
//获取节点BookID=4的IV值
var val=Globals.bookl.Where(B=>B.BookID==4);
//可以使用此方法更新第一个节点
Globals.bookl.First.Value.IV=999;
//可以通过遍历列表来升级IV
LinkedListNode当前=Globals.bookl.First;
while(当前!=null)
{
if(Current.Value.BookID==4)
{
Current.Value.IV=444;
}
当前=当前。下一步;
}
//如何使用linq更新IV?
Globals.bookl.Find(B=>B.BookID==4).Value.IV=999;//无法将lambda表达式转换为类型,因为它不是委托类型
谢谢你的帮助
Globals.BookLL.Find(B => B.BookID == 4)
这将返回一个IEnumerable
,您应该使用LINQ的First()
:
这将返回一个IEnumerable
,您应该使用LINQ的First()
:
如果你使用
Globals.BookLL val = Globals.BookLL.Single(B => B.BookID == 4);
要确定项目,可以使用Find()
若要更改其值,请使用
Globals.BookLL val = Globals.BookLL.Single(B => B.BookID == 4);
Globals.BookLL.Single(b => b.BookId == 4).IV = 44;
要确定项目,可以使用Find()
改变它的值
Globals.BookLL.Single(b => b.BookId == 4).IV = 44;
如果BookID是唯一的,则可以使用单个
如果BookID是唯一的,则可以使用single
。如果是Linq方法,则应首先调用Globals.bookl.First()
如果是Linq方法,则应首先调用Globals.BookLL.First()
First()
返回一个bookl
,它没有值
propertyThanks,但我认为fubo是正确的。我在IV
上收到一个编译错误,说double不包含IV的定义,也没有接受扩展方法IV….
谢谢大家,我真的很感谢你们的帮助。First()
返回一个bookl
没有值的属性库,但我认为fubo是对的。我在IV
上得到一个编译错误,说double没有包含IV的定义,也没有接受扩展方法IV….
谢谢大家,非常感谢您的帮助。我在第一个bookl上遇到一个编译错误-找不到类型或命名空间…
@Zeus将bookl
替换为Globals。bookl
我在第一个bookl上遇到一个编译错误-找不到类型或命名空间…
@Zeus将bookl
替换为Globals.bookl
我可以对嵌套链表使用相同的方法吗?我得到一个错误:vark=Globals.bookl.Single(B=>B.BookID==4);var G=K.GreeksLL.Single(G=>G.BookOrComp==“Book”和&G.GreekType==“Delta”);无法在此范围内声明本地名称或参数名称G…
:D没问题!。我可以对嵌套链表使用相同的方法吗?我得到一个错误:vark=Globals.bookl.Single(B=>B.BookID==4);var G=K.GreeksLL.Single(G=>G.BookOrComp==“Book”和&G.GreekType==“Delta”);无法在此范围内声明本地名称或参数名称G…
:D没问题!。