2015-02-23 6 views
0

Я пытаюсь создать список строк, которые соответствуют существующему списку, который я уже создал. Моя текущая функция выглядит следующим образом:Создать список в зависимости от значений другого списка C#

public List<string> HeatGet(int HeatNumbers, List<string> List) 
    { 
     string HeatString; 
     List<string> HeatStringList = new List<string>(); 
     int ListLength = List.Count; 
     int HeatAssignValue = ListLength/HeatNumbers; 

     for (int i = 0; i < ListLength; i++) 
     { 
      HeatString = "T" + i; 

     } 


     return HeatStringList; 


    } 

Я хотел бы список должен быть разделен на сегменты в зависимости от HeatNumbers и каждый список будет включать в себя значение, основанное на том, что, например, если мой список имеет 10 входов и HeatNumbers является 2, то первые 5 значений нового списка должны иметь T1, а последние 5 значений должны иметь T2. Однако HeatNumbers определяется пользователем и может быть изменен.

EDIT: Если HeatNumbers = 2

List1 = {Джон, Алекс, Гарри, Джеймс, Джордж, Joanne} List2 = {T1, T1, T1, T2, T2, T2}

+0

я не понял, как окончательный список должен выглядеть как написать это так: list1: 'первых, сек, third' List2:' первых, сек , third' –

+0

@OrenHaliva Обновлено, чтобы показать списки –

+0

, что должно произойти, когда размер первого списка равен 5, а heatsnumber - 2? –

ответ

1

просто нужно algorithem вычислить сегмент:

public List<string> HeatGet(int heatNumbers, List<string> list) 
    { 
     List<string> heatStringList = new List<string>(); 
     for (int i = 0; i < list.Count; i++) 
     { 
      heatStringList.Add("T" + Math.Ceiling((i + 1) * (float)heatNumbers/list.Count)); 
     } 
     return heatStringList; 
    } 
+0

Точно, что я искал, спасибо –

Смежные вопросы