Csharp/C Sharp/LINQ/SequenceEqual — различия между версиями

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

Версия 15:31, 26 мая 2010

SequenceEqual Operator

 
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 eq = presidents.SequenceEqual(presidents);
        Console.WriteLine(eq);
    }
}


SequenceEqual Operator with string array

 
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[] stringifiedNums1 = { "101", "49", "017", "1080", "00027", "2" };
        string[] stringifiedNums2 = {"1", "1049", "17", "080", "27", "02" };
        bool eq = stringifiedNums1.SequenceEqual(stringifiedNums2,new MyStringifiedNumberComparer());
        Console.WriteLine(eq);
    }
}


SequenceEqual Operator with Take and Count

 
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 eq = presidents.SequenceEqual(presidents.Take(presidents.Count()));
        Console.WriteLine(eq);
    }
}


SequenceEqual Operator with Take, Concat and Skip

 
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 eq = presidents.SequenceEqual(presidents.Take(5).Concat(presidents.Skip(5)));
        Console.WriteLine(eq);
    }
}