c# – 获取序列中“next”元素的最简单方法?
发布时间:2020-12-16 00:01:55 所属栏目:百科 来源:网络整理
导读:我有一个ICollection SomeClass. public class SomeClass{ public string Text { get; set; } public bool IsPreferred { get; set; }} 那里的物品已经预订,所以“下一步”确实意味着什么. 在我的场景中,序列的内容如下所示: [0] – “a”,false [1] – “b
我有一个ICollection< SomeClass>.
public class SomeClass { public string Text { get; set; } public bool IsPreferred { get; set; } } 那里的物品已经预订,所以“下一步”确实意味着什么. 在我的场景中,序列的内容如下所示:
我想在IsPreferred == true之后得到“next”元素.所以在上面,我想得到元素2,我想清除其他IsPreferred值. 所以我想最终得到这个:
基本上将首选项目洗牌. 最好的方法是什么?我唯一能想到的是创建一个新数组,逐个添加它们,跟踪首选的索引,然后在上述索引1处获取元素. 有更好的想法吗? 解决方法
由于
ICollection<T> 没有给你一个索引器,我会选择更直接的解决方案而不是依赖LINQ.
假设您希望(1)在满足条件时立即停止,并且(2)仅在下一个项目存在时更改该值,这可以通过以下方式实现: bool isFound = false; SomeClass targetItem = null; foreach (var item in list) { if (isFound) { item.IsPreferred = true; targetItem.IsPreferred = false; break; } if (item.IsPreferred) { targetItem = item; isFound = true; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |