■ IStructuralEquatable 인터페이스를 사용해 배열을 비교하는 방법을 보여준다.
▶ StructuralExtension.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
using System.Collections; namespace TestProject; /// <summary> /// 구조적 확장 /// </summary> public static class StructuralExtension { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Static //////////////////////////////////////////////////////////////////////////////// Public #region 구조적 동일 여부 구하기 - StructuralEquals<T>(source, target) /// <summary> /// 구조적 동일 여부 구하기 /// </summary> /// <typeparam name="T">객체 타입</typeparam> /// <param name="source">소스 객체</param> /// <param name="target">타겟 객체</param> /// <returns>구조적 동일 여부</returns> public static bool StructuralEquals<T>(this T source, T target) where T : IStructuralEquatable { return source.Equals(target, StructuralComparisons.StructuralEqualityComparer); } #endregion #region 구조적 비교하기 - StructuralCompare<T>(source, target) /// <summary> /// 구조적 비교하기 /// </summary> /// <typeparam name="T">객체 타입</typeparam> /// <param name="source">소스 객체</param> /// <param name="target">타겟 객체</param> /// <returns>구조적 비교 결과</returns> public static int StructuralCompare<T>(this T source, T target) where T : IStructuralComparable { return source.CompareTo(target, StructuralComparisons.StructuralComparer); } #endregion } |
▶ Program.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
namespace TestProject; /// <summary> /// 프로그램 /// </summary> class Program { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Static //////////////////////////////////////////////////////////////////////////////// Private #region 프로그램 시작하기 - Main() /// <summary> /// 프로그램 시작하기 /// </summary> private static void Main() { int[] sourceArray1 = new[] { 1, 2, 3 }; int[] sourceArray2 = new[] { 1, 2, 3 }; Console.WriteLine(sourceArray1.Equals(sourceArray2)); Console.WriteLine(sourceArray1.StructuralEquals(sourceArray2)); } #endregion } |