C# List<T>用法详解

获得指定索引下的值:

 for (int i = 0; i < list.Count; i++)
                    {
                        int ID2 = Convert.ToInt32(list[i]);
                        string valu = list[i + 1].ToString();

    }


1、给List里面元素排序: 
List. Sort ()   默认是元素第一个字母按升序 
E.g.:   mList.Sort(); 给List里面元素顺序反转: 
List. Reverse ()   可以与List. Sort ()配合使用,达到想要的效果 
E.g.:   mList.Sort(); 
 
 List清空:List. Clear () 
E.g.:   mList.Clear(); 
  获得List中元素数目: 
List. Count ()    返回int值 
E.g.: 
int count = mList.Count(); 
Console.WriteLine("The num of elements in the list: " +count);   
2、  List的进阶、强大方法: 
举例用的List: 
string[] temArr = { Ha","Hunter", "Tom", "Lily", "Jay", "Jim", "Kuku", " "Locu" }; 
mList.AddRange(temArr);   
List.Find 方法:搜索与指定谓词所定义的条件相匹配的元素,并返回整个 List 中的第一个匹配元素。 
public T Find(Predicate<T> match); 
Predicate是对方法的委托,如果传递给它的对象与委托中定义的条件匹配,则

该方法返回 true。当前 List 的元素被逐个传递给Predicate委托,并在 List 中向前移动,从第一个元素开始,到最后一个元素结束。当找到匹配项时处理即停止。 
Predicate 可以委托给一个函数或者一个拉姆达表达式 
委托给拉姆达表达式: E.g.: 
            string listFind = mList.Find(name =>  //name是变量,代表的
是mList 

            {                             

 //中元素,自己设定                

 if (name.Length > 3)                

 { 

 return true;

 } 

 return false;             

}); 

Console.WriteLine(listFind);     //输出是Hunter  

委托给一个函数: E.g.: 
string listFind1 = mList.Find(ListFind);   //委托给ListFind函
数 
Console.WriteLine(listFind);           //输出是Hunter  
ListFind函数: 
 public bool ListFind(string name)
        {
            if (name.Length > 3)
            {
                return true;
            }
            return false;
        } 

这两种方法的结果是一样的。 

List.FindLast 方法:搜索与指定谓词所定义的条件相匹配的元素,并返回整个 List 中的最后一个匹配元素。 
public T FindLast(Predicate<T> match); 用法与List.Find相同。 
List.TrueForAll方法:  确定是否 List 中的每个元素都与指定的谓词所定义的条件相匹配。 
 public bool TrueForAll(Predicate<T> match); 
委托给拉姆达表达式: E.g.: 
            bool flag = mList.TrueForAll(name => 
            { 

               

if (name.Length > 3)                

 { 

return true;                 

}                 

else                 

{ return false;    } } ); 

   Console.WriteLine("True for all:  "+flag);  //flag值为false 
 
委托给一个函数,这里用到上面的ListFind函数: E.g.: 
 bool flag = mList.TrueForAll(ListFind); //委托给ListFind函数 
Console.WriteLine("True for all:  "+flag);  //flag值为false  
这两种方法的结果是一样的。  
List.FindAll方法:检索与指定谓词所定义的条件相匹配的所有元素。 

public List<T> FindAll(Predicate<T> match); 
E.g.: 
List<string> subList = mList.FindAll(ListFind); //委托给
ListFind函数 
        foreach (string s in subList)         { 
            Console.WriteLine("element in subList: "+s);         } 
        这时subList存储的就是所有长度大于3的元素  
List.Take(n):  获得前n行 返回值为IEnumetable<T>,T的类型与List<T>的类型一样 
E.g.: 
IEnumerable<string> takeList=  mList.Take(5); 
          foreach (string s in takeList)           { 
              Console.WriteLine("element in takeList: " + s);           } 
       这时takeList存放的元素就是mList中的前5个  
List.Where方法:检索与指定谓词所定义的条件相匹配的所有元素。跟List.FindAll方法类似。 
E.g.: 
            IEnumerable<string> whereList = mList.Where(name => 
                {  
                    if (name.Length > 3)                     { 
                        return true;                     }                     else                     { 

                        return false;                     }                 }); 


         foreach (string s in subList)          { 
             Console.WriteLine("element in subList: "+s);          } 
         这时subList存储的就是所有长度大于3的元素 
 
List.RemoveAll方法:移除与指定的谓词所定义的条件相匹配的所有元素。 
public int RemoveAll(Predicate<T> match); 
E.g.: 
            mList.RemoveAll(name => 
                { 
                    if (name.Length > 3)                     { 
                        return true;                     }                     else                     { 
                        return false;                     }                 }); 
            foreach (string s in mList)             { 
                Console.WriteLine("element in mList:     " + s);             } 
      这时mList存储的就是移除长度大于3之后的元素。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
图像识别技术在病虫害检测中的应用是一个快速发展的领域,它结合了计算机视觉和机器学习算法来自动识别和分类植物上的病虫害。以下是这一技术的一些关键步骤和组成部分: 1. **数据收集**:首先需要收集大量的植物图像数据,这些数据包括健康植物的图像以及受不同病虫害影响的植物图像。 2. **图像预处理**:对收集到的图像进行处理,以提高后续分析的准确性。这可能包括调整亮度、对比度、去噪、裁剪、缩放等。 3. **特征提取**:从图像中提取有助于识别病虫害的特征。这些特征可能包括颜色、纹理、形状、边缘等。 4. **模型训练**:使用机器学习算法(如支持向量机、随机森林、卷积神经网络等)来训练模型。训练过程中,算法会学习如何根据提取的特征来识别不同的病虫害。 5. **模型验证和测试**:在独立的测试集上验证模型的性能,以确保其准确性和泛化能力。 6. **部署和应用**:将训练好的模型部署到实际的病虫害检测系统中,可以是移动应用、网页服务或集成到智能农业设备中。 7. **实时监测**:在实际应用中,系统可以实时接收植物图像,并快速给出病虫害的检测结果。 8. **持续学习**:随着时间的推移,系统可以不断学习新的病虫害样本,以提高其识别能力。 9. **用户界面**:为了方便用户使用,通常会有一个用户友好的界面,显示检测结果,并提供进一步的指导或建议。 这项技术的优势在于它可以快速、准确地识别出病虫害,甚至在早期阶段就能发现问题,从而及时采取措施。此外,它还可以减少对化学农药的依赖,支持可持续农业发展。随着技术的不断进步,图像识别在病虫害检测中的应用将越来越广泛。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值