C# Find函数是一种非常常用的函数之一,它用于从数组或列表容器中查找一个元素。在本文中,我们将详细了解C# Find函数的各种用法、注意事项以及代码实例。
一、查找数组中元素的用法
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方法后,我们就可以这样查找一个类对象元素:
List list = 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函数有了更深入的了解。
原创文章,作者:VBJQ,如若转载,请注明出处:https://www.506064.com/n/146698.html
微信扫一扫
支付宝扫一扫