두 개의 도형 - 직사각형과 원 목록이 있습니다. 그들은 모두 주 3 일반 속성 - ID, 유형과 범위C# 반복을 위해 두 개의 다른 목록 집합을 결합하십시오.
원 2 개 추가 속성이 - 범위 및 센터
는 는내가 하나의리스트에 각 유형의 목록에 참여할 수있는 방법 그래서 내가 그렇게 그들을 반복 할 수 두 개의 foreach주기를 입력 할 필요가 없습니다.
목록을 조합하는 것보다 더 좋은 방법이 될 수 있습니까?
public interface IRectangle
{
string Id { get; set; }
GeoLocationTypes Type { get; set; }
Bounds Bounds { get; set; }
}
public class Rectangle : IRectangle
{
public string Id { get; set; }
public GeoLocationTypes Type { get; set; }
public Bounds Bounds { get; set; }
}
public interface ICircle
{
string Id { get; set; }
GeoLocationTypes Type { get; set; }
Bounds Bounds { get; set; }
float Radius { get; set; }
Coordinates Center { get; set; }
}
public class Circle : ICircle
{
public string Id { get; set; }
public GeoLocationTypes Type { get; set; }
public Bounds Bounds { get; set; }
public float Radius { get; set; }
public Coordinates Center { get; set; }
}
public class Bounds
{
public Coordinates NE { get; set; }
public Coordinates SW { get; set; }
}
public class Coordinates
{
public float Lat { get; set; }
public float Lng { get; set; }
}
먼저 Circle과 Rectangle을 'IShape'(인터페이스에서 파생 됨)로 변환 할 것을 권장합니다. 지금 가지고 계시므로, 원과 직사각형은 공통점이 없습니다. –
"더 나은"정의하십시오. 더 효율적입니까? 유지/읽기가 더 쉽습니까? 그들이 별도의 목록에 올 이유가 있습니까?좀 더 추상적 인 객체 유형에서 다른 모양으로 내려 가서 <추상 형식> 목록을 사용할 수 있지만 참조해야 할 경우보다 일반적인 목록을 반복 할 때 올바른 특정 하위 클래스로 객체를 캐스팅해야합니다. 그들의 특성. 목록 ... 기린, 하이에나, 얼룩말 등을 포함합니다. –
Tim