2011-05-09 2 views
1

인사말 (제목이 적합한 지 모르겠 음)개체 당 두 개 이상의 매개 변수를 포함하는 ArrayList를 사전 순으로 정렬하는 방법은 무엇입니까?

나는 다른 종류의 개체를 포함 할 수있는 ArrayList이 있습니다.

private ArrayList items = new ArrayList(); 
var list = web.Lists[ListName]; 

items.Add(new { GroupName = value }); 

foreach (SPListItem item in list.Items) 
{ 
    items.Add(new { GroupName = value, ItemID = item.ID, ItemName = item.Name }); 
} 

위에서 볼 수 있듯이, 나는 물체는 GroupName을 포함하고 개체가 GroupName, ItemIDItemName

는 내가하고 싶은 것은 모든 항목을 정렬하는 것입니다 포함해야 에 의해 ItemName.

단 하나의 매개 변수 일 때 정렬하는 데 문제가 없지만 여러 매개 변수가있을 때 나는 단서입니다. 어떻게해야합니까?

+0

@Ziga를 사용하면 정렬 기준과 결과 순서의 예를 제시하면 도움이됩니다. –

+0

유형이없는'ArrayList' 대신'List '을 사용할 수있는 방법이 있습니까? – Juliet

+0

그리고 LINQ를 사용할 수 있습니까? –

답변

2

편집 : 정렬 전에 새로운 ArrayList를에 추가

foreach(SPListItem item in list.Items.Cast<SPListItem>.OrderBy(i => i.Name)) 
{ 
    items.Add(new { GroupName = value, ItemID = item.ID, ItemName = item.Name }); 
} 

최근 편집 : 그냥 (쉽게에서 항목을 추출 할 수있는 ArrayList를없이)를 열거 모음을 원하는 경우에 , 당신은 할 수 LINQ 선택 연산자를 사용하십시오.

+0

시도해 보았습니다. 그것은 영향을 미치지 않는 것 같습니다 : s – diceler

+0

그것은 당신에게 오류를 제공합니까? sortedItems를 사용하고 있습니까? –

+0

@이 오류가 발생합니다. System.InvalidCastException : '<> f__AnonymousType0'1 [System.String]'형식의 개체를 캐스팅하여 'Microsoft.SharePoint.SPListItem'을 입력 할 수 없습니다. – diceler

관련 문제