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>某个对象的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET Razor - C# 逻辑条件

在 C# 中的列表内过滤 - 根据 where 条件选择

C#遍历List并删除某个或者几个元素的方法

C#遍历List并删除某个或者几个元素的方法

list列表和tuple条件判断循环dict和set调用函数定义函数

100个 Unity实用技能| C# 中List 使用Exists方法判断是否存在符合条件的元素对象