c# – 在List中添加项目的简短方法?
发布时间:2020-12-15 19:51:04 所属栏目:百科 来源:网络整理
导读:如果除了foreach循环和新的集合创建之外还有任何简短的方法在现有List中的特定对象之后添加对象? 举个例子: “艾米”,“杰里”,“贝”,“艾米”,“杰克”. 我希望在每个“amy”之后添加“simon” 解决方法 您可以使用 Linq执行此操作. foreach (var item i
如果除了foreach循环和新的集合创建之外还有任何简短的方法在现有List中的特定对象之后添加对象?
举个例子: “艾米”,“杰里”,“贝”,“艾米”,“杰克”. 解决方法
您可以使用
Linq执行此操作.
foreach (var item in values .Select((o,i) => new { Value = o,Index = i }) .Where(p => p.Value == "amy") .OrderByDescending(p => p.Index)) { if (item.Index + 1 == values.Count) values.Add("simon"); else values.Insert(item.Index + 1,"simon"); } 使用foreach但您可以将其放入扩展方法以保持代码清晰. 扩展方法 您可以轻松地将其放入扩展方法中. public static void AddAfterEach<T>(this List<T> list,Func<T,Boolean> condition,T objectToAdd) { foreach (var item in list.Select((o,Index = i }).Where(p => condition(p.Value)).OrderByDescending(p => p.Index)) { if (item.Index + 1 == list.Count) list.Add(objectToAdd); else list.Insert(item.Index + 1,objectToAdd); } } 现在来电: List<String> list = new List<String>() { "amy","jerry","tony","amy","jack" }; list.AddAfterEach(p => p == "amy","simon"); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |