如何解决如何从没有循环的list2更新静态list1如何以LINQ lambda表达式的方式实现
如何在不循环的情况下从list2更新静态list1 如何通过LINQ lambda表达式实现这一目的
192.168.1.96
她尝试了此操作,但是静态列表未更新,创建了新列表 我想更新不带循环的静态列表_staticlist
www.vk1.com
解决方法
LINQ语句从不修改正在使用它们的集合,而是为正在使用的每个LINQ语句返回一个新的集合。根据您的情况,您可以再次将LINQ语句返回的集合直接分配给_staticList
,如下所示:
_staticlist = _staticlist.Join(states,a => a.CID,b => b.SID,(a,b) => new { a,b })
.Select(S =>
{
S.a.Name = S.b.Name;
return S.a;
}).ToList();
使用Select()
语句时要注意选择的对象类型。因为这必须与_staticList
的类型匹配。
但静态列表未更新,因为您没有将操作结果分配给变量
var myList = _staticlist.Join(states,b })
.Select(S =>
{
S.a.Name = S.b.Name;
return S;
}).ToList();
请注意,Join
是Enumerable的扩展功能,其中无法修改可枚举。
public static IEnumerable<TResult> Join<TOuter,TInner,TKey,TResult>(
this IEnumerable<TOuter> outer,IEnumerable<TInner> inner,Func<TOuter,TKey> outerKeySelector,Func<TInner,TKey> innerKeySelector,TResult> resultSelector)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。