2013-01-07 2 views
-2

유효성 검사 속성을 사용하여보기에서 컨트롤러로 개체 목록을 게시하는 동안 중복이 있는지 확인합니다. 작동하지만 클라이언트 측 유효성 검사를 추가 할 수있는 더 나은 접근 방법이 있는지 알고 싶습니다. 어떤 피드백도 감사합니다.목록에서 중복을 확인하는 더 나은 방법

[AttributeUsageAttribute(AttributeTargets.Property, AllowMultiple = true, Inherited = false)] 
public class DuplicateObjectAttribute : ValidationAttribute 
{ 
    public override bool IsValid(object value) 
    { 
     if (value != null) 
     { 
     if (value.GetType() == typeof(List<OrdersVM>)) 
     { 
      List<OrdersVM> objOrdersList = (List<OrdersVM>)value; 
      if (objOrdersList != null && objOrdersList.Count > 0) 
      { 
       if (objOrdersList.Select(p => p.OrderId).Distinct().Count() != objOrdersList.Select(p => p.OrderId).Count()) 
       return false; 
      } 
     } 
     } 
     return true; 
    } 
} 

답변

2

당신은 충분히 좋지 않습니까? 은 MSDN 항목을 기반으로

var duplicates = listOfItems 
    .GroupBy(i => i) 
    .Where(g => g.Count() > 1) 
    .Select(g => g.Key); 

foreach (var d in duplicates) 
    ;//dosomething 

, Find Duplicates using LINQ

+0

감사합니다 오스틴, 나는 내 프로젝트에서 뷰의 숫자를 사용하고 있기 때문에 제안/피드백을 얻을 싶어 : 나는 비슷한 뭔가. – Sunny

+0

@Sundeep 성능면에서 문제가되지 않습니다. 나는 O (n) 시간에 그것을 실행 믿습니다. –

관련 문제