Csharp/C Sharp/LINQ/Contains

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

A query to extract strings containing the letter "a", sorted by length and converted to uppercase

<source lang="csharp"> using System; using System.Collections.Generic; using System.Linq; class LinqDemo {

   static void Main() {
       string[] names = { "J", "P", "G", "Pa" };
       IEnumerable<string> query =
         from n in names
         where n.Contains("a")     
         orderby n.Length          
         select n.ToUpper();       
       foreach (string name in query) Console.Write(name + "/");
   }

}

</source>


Contains with IEqualityComparer

<source lang="csharp"> using System; using System.Linq; using System.Collections; using System.Collections.Generic; public class MyStringifiedNumberComparer : IEqualityComparer<string> {

   public bool Equals(string x, string y) {
       return (Int32.Parse(x) == Int32.Parse(y));
   }
   public int GetHashCode(string obj) {
       return Int32.Parse(obj).ToString().GetHashCode();
   }

} public class MainClass {

   public static void Main() {
       string[] stringifiedNums = {"001", "49", "017", "0080", "00027", "2" };
       bool contains = stringifiedNums.Contains("2",new MyStringifiedNumberComparer());
       Console.WriteLine(contains);
   }

}

</source>


Contains with predicate returned false

<source lang="csharp"> using System; using System.Linq; using System.Collections; using System.Collections.Generic; public class MainClass {

   public static void Main() {
       string[] presidents = {"A", "H", "a", "H", "over", "Jack"};
       bool contains = presidents.Contains("G");
       Console.WriteLine(contains);
   }

}

</source>


Contains with string value

<source lang="csharp"> using System; using System.Linq; using System.Collections; using System.Collections.Generic; public class MainClass {

   public static void Main() {
       string[] presidents = {"G", "H", "a", "H", "over", "Jack"};
       bool contains = presidents.Contains("H");
       Console.WriteLine(contains);
   }

}

</source>


Contains with string value and IEqualityComparer

<source lang="csharp"> using System; using System.Linq; using System.Collections; using System.Collections.Generic; public class MyStringifiedNumberComparer : IEqualityComparer<string> {

   public bool Equals(string x, string y) {
       return (Int32.Parse(x) == Int32.Parse(y));
   }
   public int GetHashCode(string obj) {
       return Int32.Parse(obj).ToString().GetHashCode();
   }

} public class MainClass {

   public static void Main() {
       string[] stringifiedNums = {"001", "49", "017", "0080", "00027", "2" };
       bool contains = stringifiedNums.Contains("000271",new MyStringifiedNumberComparer());
       Console.WriteLine(contains);
   }

}

</source>


Use Contains to check the existance of an element

<source lang="csharp"> using System; using System.Collections; using System.Collections.Generic; using System.Text; using System.Linq; public class MainClass{

  public static void Main(){
      int[] numbers = { 2, 6, 1, 56, 102 };
      Console.WriteLine("Is there the number 102?");
      Console.Write(numbers.Contains(102) ? "Yes, there is" : "No, there isn"t");
  }

}

</source>