첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
728x90
반응형
728x170

■ IStructuralEquatable 인터페이스를 사용해 배열을 비교하는 방법을 보여준다.

TestProject.zip
0.09MB

▶ StructuralExtension.cs

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

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
}
728x90
반응형
그리드형(광고전용)
Posted by icodebroker

댓글을 달아 주세요