一、查找数组中元素的用法
C#提供了多种可用于查找数组中元素的方法。其中,Find、FindIndex、FindLast、FindLastIndex和FindAll等方法分别用于特定类型的数组。
1、查找一个整数元素
int[] array = {99, 2, 34, 56, 39, 53, 32, 92}; //使用Lambda表达式查找数组中元素 int element = array.Find(x => x % 2 == 0 && x > 50); Console.WriteLine("找到中符合条件的第一个元素是:{0}", element);
在以上代码中,我们使用Lambda表达式查找数组中符合指定条件的第一个元素:
1)%表示取模运算,即求余数;
2)&&表示逻辑AND运算;
3)Lambda表达式中x代表当前正在查找的元素。
2、查找一个字符串元素
string[] array = {"apple", "banana", "orange", "grape", "pear"}; //使用Lambda表达式查找数组中元素 string element = array.Find(x => x.StartsWith("o")); Console.WriteLine("找到中符合条件的第一个元素是:{0}", element);
在以上代码中,我们使用Lambda表达式查找数组中以字母"o"开头的字符串元素。
3、查找一个类对象元素
如果要查找一个列表容器中的类对象元素,那么我们需要先定义一个类,并重写它的Equals方法:
public class Student { public string Name { get; set; } public int Age { get; set; } public override bool Equals(object obj) { if (obj == null) return false; Student objAsStudent = obj as Student; if (objAsStudent == null) return false; else return Equals(objAsStudent); } public bool Equals(Student other) { if (other == null) return false; return (this.Name.Equals(other.Name) && this.Age.Equals(other.Age)); } public override int GetHashCode() { return this.Age.GetHashCode() ^ this.Name.GetHashCode(); } }
重写Equals方法后,我们就可以这样查找一个类对象元素:
Listlist = new List (); list.Add(new Student() { Name = "Tom", Age = 20 }); list.Add(new Student() { Name = "Lucy", Age = 22 }); list.Add(new Student() { Name = "John", Age = 23 }); //使用Lambda表达式查找列表中元素 Student student = list.Find(x => x.Name == "John" && x.Age == 23); Console.WriteLine("找到中符合条件的第一个元素是:{0}", student.Name);
二、注意事项
在使用C# Find函数时,需要注意以下几点:
1、数组类型需要匹配
C#不支持为不同类型的元素进行查找操作。例如,用于查找字符串元素的Find方法不能用于整数类型的数组,并且用于查找整数元素的Find方法不能用于字符串类型的数组。
2、未查找到元素
如果未找到符合条件的元素,将返回数组或列表容器中元素类型的默认值。例如,如果要查找一个整数元素却未查找到,将返回0。
3、Lambda表达式中无法使用break关键字
在Lambda表达式中,由于没有循环体,因此无法使用break等跳出循环的关键字。
三、其他用法
C# Find函数还有其他有用的用法。例如,我们可以使用FindAll方法查找列表中符合条件的所有元素:
1、查找所有整数元素
int[] array = {99, 2, 34, 56, 39, 53, 32, 92}; //使用Lambda表达式查找数组中符合条件的所有元素 var elements = array.FindAll(x => x % 2 == 0); Console.Write("找到中符合条件的元素有:"); foreach (var element in elements) { Console.Write(element + ","); }
2、查找所有字符串元素
string[] array = {"apple", "banana", "orange", "grape", "pear"}; //使用Lambda表达式查找数组中符合条件的所有元素 var elements = array.FindAll(x => x.Length > 5); Console.Write("找到中符合条件的元素有:"); foreach (var element in elements) { Console.Write(element + ","); }
结束语
以上就是C# Find函数的详尽解析,包括用法、注意事项以及代码示例。通过本文的学习,我们相信读者已经对C# Find函数有了更深入的了解。