0
는 Why does a Linq Cast<T> operation fail when I have an implicit cast defined?암시 적 연산자, Linq 및 람다 식은 코드를 읽기 쉽게 만들 수 있습니다. 그러나 더 읽기 쉬운 것은 무엇입니까? 이 질문에 대답에서
나는 여러 가지 방법으로 암시 적 객체 사이의 캐스팅이 있다는 것을 발견했다.
는 다음과 같은 두 가지 클래스를 고려
public class Class1
{
public int Test1;
}
public class Class2
{
public int Test2;
public static implicit operator Class1(Class2 item)
{
return new Class1 { Test1 = item.Test2 };
}
}
우리는 다음 중 하나를 수행 할 수 있습니다 목록에 목록을 변환하기 위해서 :
List<Class2> items = new List<Class2> { new Class2 { Test2 = 9 } };
foreach (Class1 item in items)
{
Console.WriteLine(item.Test1);
}
foreach (Class1 item in items.ConvertAll<Class1>(i=>i))
{
Console.WriteLine(item.Test1);
}
foreach (Class1 item in items.Select<Class2, Class1>(i=> i))
{
Console.WriteLine(item.Test1);
}
foreach (Class1 item in items.Select(i=>i))
{
Console.WriteLine(item.Test1);
}
을하지만 이는 명확를 읽고 무엇을 이해하기 계속 하시겠습니까?
예. 하지만 foreach 루프가 아닌 경우 List을 전달해야하고 List 전체를 가지고 있어야합니다. 전환 유형이 필요합니다. 위의 코드는 모두이 기능을 제공하지만 더 쉽습니다. –