2012-12-20 7 views
-2

5 개의 값이있는 목록이 있다고 가정 해 봅시다.C#의 목록을 순환 반복

List<Item> Test 
Test[0] 
{Item.category,Item.Number,Item.Format,Item.Order} etc 

내 요구 사항은이 목록의 값을 기반으로 일부 HTML 코드를 작성해야한다는 것입니다.

작성 방법은 동일한 Item.Category 값은 함께 쓰여야합니다. item.category에 5 개의 값이 있고 그 중 3 개가 같고 다른 2 개가 다른 경우 3 개의 항목이 결합되어야합니다. item.category은 헤더와 숫자, 형식 등의 다른 값은 헤더 안의 내용이 될 것입니다. 나는 어려운 알려 주시기 바랍니다 읽고 이해 한 경우

<h1>Item.category(the 3 same categories should appear here just one)</h1> 
{ 
    all other elements * 3 times 

    } 

:

이 같은 표시되어야합니다.

+2

무엇을 시도 했습니까? 당신이 우리에게 당신을 위해 당신의 일을하라고했습니다. –

+0

의사 코드 대신 실제 코드를 제공해주십시오. –

답변

0

당신의 질문은 이해하기가 약간 어렵지만 카테고리별로 항목을 표시하려는 경우 추측하겠습니다. 각 항목은 해당 카테고리에 표시되고 각 카테고리는 한 번만 표시됩니다.

당신은 같은 것을 시도 할 수 :

<% foreach(var g in Test.GroupBy(i => i.category)) { %> 
    <h1><%= g.Key %></h1> 
    <ul> 
    <% foreach(var i in g) { %> 
     <li><%= String.Format("Number: {0}, Format: {1}, Order: {2}", 
           i.Number, 
           i.Format, 
           i.Order) %></li> 
    <% } %> 
<% } %>  
+0

Perfect .. 감사합니다. – user505210

0

먼저 정렬 카테고리의 목록 :

Test.Sort((x, y) => x.Category.CompareTo(y.Category)); 

것은 당신이 항목을 반복, 현재의 카테고리를 추적하고이 변경되는 경우 헤더를 쓰기 :

string category = null; 
foreach (Item item in Test) { 
    if (category != item.Category) { 
    category == item.Category; 
    %><h1><%: item.Category %></h1><% 
    } 
    // output item here 
} 
0

빠른 제안하십시오 목록 < 항목을 통해

으로 반복>을 새로운 목록 < 항목의 항목 별 시험 및 복사 항목> newTest : with newTest.Add (item);

하지만 처음에는 .Add(); :

  1. 항목이 이미있는 경우 newTest-List에서 확인하십시오. 그렇다면 복사하지 말고 복사하십시오!

  2. 결과 : newTest-목록은 별개의 (더 더블)이 newTest-목록을 통해

  3. 으로 반복 엔트리하지 포함하여 HTML 요소 newTest-목록에 근거하여 작성합니다! (for 또는 foreach)

관련 문제