您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“l(fā)inq中的限定操作符怎么用”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
限定操作符運算返回一個Boolean值,該值指示序列中是否有一些元素滿足條件或者是否所有元素都滿足條件。
All方法用來確定是否序列中的所有元素都滿足條件??聪旅娴睦樱?/p>
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace LimitOperation { class Program { static void Main(string[] args) { string[] source1 = new string[] { "A", "B", "C", "D", "E", "F" }; string[] source2 = new string[] { "A", "A", "A", "A", "A", "A" }; Console.WriteLine(source1.All(w => w == "A")); //輸出"False" Console.WriteLine(source2.All(w => w == "A")); //輸出 "True" Console.ReadKey(); } } }
結(jié)果:
先來看看Any的定義:
從定義中可以看出:Any有兩個重載方法。Any方法的無參方式用來確定序列是否包含任何元素。Any方法的有參方式用來確定序列中是否有元素滿足條件。只要有一個元素符合指定條件即返回true,如果一個符合指定條件的元素都沒有則返回false。看下面的例子:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace LimitOperation { class Program { static void Main(string[] args) { string[] source1 = new string[] { "A", "B", "C", "D", "E", "F" }; string[] source2 = new string[] { "A", "A", "A", "A", "A", "A" }; Console.WriteLine(source1.Any()); // 輸出"True" Console.WriteLine(source1.Any(w => w == "A")); //輸出 "True" Console.WriteLine(source2.Any(w => w == "G")); //輸出 "False" Console.ReadKey(); } } }
結(jié)果:
Contains方法用來確定序列是否包含滿足指定條件的元素。如果有返回true,否則返回false??聪旅娴睦樱?/p>
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace LimitOperation { class Program { static void Main(string[] args) { string[] source1 = new string[] { "A", "B", "C", "D", "E", "F" }; Console.WriteLine(source1.Contains("A")); //輸出 "True" Console.WriteLine(source1.Contains("G")); //輸出 "False" Console.ReadKey(); } } }
結(jié)果:
Contains還有另外一個重載的方法,看定義:
public static bool Contains<TSource>(this IEnumerable<TSource> source, TSource value, IEqualityComparer<TSource> comparer);
該重載方法的參數(shù)是一個實現(xiàn)IEqualityComparer<TSource>接口的類型。看下面的例子。
定義實現(xiàn)IEqualityComparer<TSource>接口的類型:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace LimitOperation { /// <summary> /// EqualityComparerEquals類實現(xiàn)IEqualityComparer接口 /// </summary> public class EqualityComparerEquals : IEqualityComparer<string> { public bool Equals(string x, string y) { return x == y; } public int GetHashCode(string obj) { return obj.ToString().GetHashCode(); } } }
方法中調(diào)用:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace LimitOperation { class Program { static void Main(string[] args) { string[] source1 = new string[] { "A", "B", "C", "D", "E", "F" }; var comparer = source1.Contains("F", new EqualityComparerEquals()); Console.WriteLine(comparer); //輸出"True" Console.ReadKey(); } } }
結(jié)果:
注意:在自定義的類中,x相當(dāng)于數(shù)組中的每一個元素,y是要比較的元素:F。
“l(fā)inq中的限定操作符怎么用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。