C# 根据 条件判断删除List<Warehouse>某个对象
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 根据 条件判断删除List<Warehouse>某个对象相关的知识,希望对你有一定的参考价值。
我想根据我提供的值判断是否等于List<Warehouse> 中对象 ,然后根据我提供的值,删除数组中指定对象?
public List<Warehouse> list = new List<Warehouse>();
foreach (var item in list)
if (item.WA_Code == code)
list.Remove(item);
我循环遍历判断后,然后怎么删除
给你一个例子:
using System;using System.Collections.Generic;
namespace ConsoleApplication1
public class DataItem
public string Name get; set;
public int Value get; set;
class Program
static void Main(string[] args)
// 初始时候的集合
List<DataItem> list = new List<DataItem>();
list.Add(new DataItem Name = "第一项", Value = 10 );
list.Add(new DataItem Name = "第二项", Value = 20 );
list.Add(new DataItem Name = "第三项", Value = 10 );
list.Add(new DataItem Name = "第四项", Value = 40 );
// 显示集合内容
PrintList(list);
Console.WriteLine();
// 删除指定的项
// 1. 先找到要删除的对象。删除集合中所有Value=10的对象
List<DataItem> deleted =
list.FindAll(item => item.Value == 10);
// 2. 从集合中删除。注意:遍历的是 deleted 而不是原来的list!
foreach (var item in deleted)
list.Remove(item);
// 显示集合内容
PrintList(list);
static void PrintList(List<DataItem> list)
foreach (var item in list)
Console.WriteLine("Name=0, Value=1",
item.Name, item.Value);
参考技术A 正在遍历集合的时候,不能删除集合中的元素。
做一个临时集合,把匹配的元素放到临时集合中,待原集合遍历之后,把临时集合中的元素,逐个从原集合中删除。追问
可是我怎么删除数组指定对象啊
追答List<T> list = new List<T>();List<int> temp = new List<int>();
for(int i = 0; i< list.Count; i++)
if (list[i].WA_Code == code)
temp.add(i);
for(int i=temp.Count - 1; i>=0; i--)
list.RemoveAt(i);本回答被提问者采纳
100个 Unity实用技能| C# 中List 使用Exists方法判断是否存在符合条件的元素对象
Unity 小科普
老规矩,先介绍一下 Unity 的科普小知识:
- Unity是 实时3D互动内容创作和运营平台 。
- 包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助 Unity 将创意变成现实。
- Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。
- 也可以简单把 Unity 理解为一个游戏引擎,可以用来专业制作游戏!
Unity 实用小技能学习
C# 中List 使用Exists方法判断是否存在符合条件的元素对象
在C#的List集合操作中,有时候需要根据条件判断List集合中是否存在符合条件的元素对象
此时就可以使用 List集合的扩展方法 Exists方法
来实现
通过Exists判断是否存在符合条件的元素对象比使用for循环或者foreach遍历查找更直接。
public bool Exists(Predicate<T> match);
下面简单用三种数据类型来对Exists方法进行一个简单的例子介绍,看看具体是怎样使用它的。
基础类型
//基础类型
List<int> list1 = new List<int>() 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 ;
var bRet= list1.Exists(t => t == 15);
if (bRet == true)
Console.WriteLine("存在该元素对象");
else
Console.WriteLine("不存在该元素对象");
结构体类型
//结构体类型
public struct StructTest
public int Key;// set; get;
public string Value; // set; get;
List<StructTest> List2 = new List<StructTest> ;
var bRet= testList.Exists(t => t.Key == 25);
if (bRet== true)
Console.WriteLine("存在该元素对象");
else
Console.WriteLine("不存在该元素对象");
引用类型
//引用类型
public class TestModel
public int Index set; get;
public string Name set; get;
List<TestModel> testList = new List<ConsoleApplication1.TestModel>();
if(testList.Exists(t => t.Index == 7))
Console.WriteLine("存在该元素对象");
else
Console.WriteLine("不存在该元素对象");
以上是关于C# 根据 条件判断删除List<Warehouse>某个对象的主要内容,如果未能解决你的问题,请参考以下文章