반응형

유용한 C# 확장 메소드 모음

 

All C# Extension Methods - ExtensionMethod.NET

 

extensionmethod.net

ForEach

using System;
using System.Collections.Generic;

namespace Extensions
{
    static class Extensions
    {
        public static void ForEach<T>(this IEnumerable<T> source, Action<T> action)
        {
            foreach (var item in source)
                action(item);
        }
    }
}


Example
List<string> names = new List<string> { "beatle", "assassin", "chrisis", "erique", "fanlan" };
names.ForEach(name => Console.WriteLine(name));

 

DeepClone

public static T DeepClone<T>(this T input) where T : ISerializable
{
   using (var stream = new MemoryStream())
   {
      var formatter = new BinaryFormatter();
      formatter.Serialize(stream, input);
      stream.Position = 0;
      return (T)formatter.Deserialize(stream);
   }
}

Example
var stringbuilder = new StringBuilder("TestData");
var copy = stringbuilder.DeepClone();
Assert.IsFalse(Equals(stringbuilder,copy));
반응형

'[====== Development ======] > C#' 카테고리의 다른 글

자동 시작 프로그램에 등록하는 기능  (0) 2021.04.19
String Extension Method  (0) 2021.04.19
Using Task and Progress window  (0) 2021.04.16
소수인지 여부 확인  (0) 2021.02.18
Hashtable & Dictionary Example  (0) 2021.02.17

+ Recent posts