本篇內容介紹了“linq中的限定操作符怎么用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
限定操作符運算返回一個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();
}
}
}結果:

先來看看Any的定義:

從定義中可以看出:Any有兩個重載方法。Any方法的無參方式用來確定序列是否包含任何元素。Any方法的有參方式用來確定序列中是否有元素滿足條件。只要有一個元素符合指定條件即返回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" };
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();
}
}
}結果:

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();
}
}
}結果:

Contains還有另外一個重載的方法,看定義:
public static bool Contains<TSource>(this IEnumerable<TSource> source, TSource value, IEqualityComparer<TSource> comparer);
該重載方法的參數是一個實現IEqualityComparer<TSource>接口的類型??聪旅娴睦?。
定義實現IEqualityComparer<TSource>接口的類型:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LimitOperation
{
/// <summary>
/// EqualityComparerEquals類實現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();
}
}
}方法中調用:
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();
}
}
}結果:

注意:在自定義的類中,x相當于數組中的每一個元素,y是要比較的元素:F。
“linq中的限定操作符怎么用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。