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/zh-tw/n/146698.html
微信掃一掃
支付寶掃一掃