2016-08-16 5 views
0

вот мой кодВключить в список, когда список граф является «0»

public class ControlProperty 
{   
    public int SortOrder { get; set; } 
    public string DisplayName { get; set; } 
} 

public partial class MainWindow : Window 
{ 
    public MainWindow() 
    { 
     InitializeComponent(); 
     ControlProperty ct = new ControlProperty(); 
     ControlProperty ct1 = new ControlProperty(); 
     List<ControlProperty> lstct = new List<ControlProperty>(); 
     ct.DisplayName = "test"; 
     ct1.DisplayName = "test1"; 
     ct1.SortOrder = 1; 
     ct.SortOrder = 0; 
     lstct.Insert(ct1.SortOrder, ct1); 
     lstct.Insert(ct.SortOrder, ct); 
     lstbxIncidentControls.ItemsSource = lstct; 

    } 
} 

здесь им пытаются вставить список (в соответствии с SortOrder) элемент в список объектов, для которых счетчик равен нулю, и который не может вставляться как это ....

поэтому я хочу, чтобы вставить в список в соответствии с моим порядком сортировки ....

может ли один помочь мне в этом

+5

list.add чувак. используйте метод добавления. – Botonomous

+0

, если вы используете 'Insert', первым параметром является индекс в списке, который вы хотите поместить. Вы не можете использовать 'SortOrder', потому что это не имеет ничего общего с индексом в списке –

+0

@EdPlunkett излишне саркастично –

ответ

2

Используйте .Add функцию список

List<string> mylist = new List<string>(); 
mylist.Add("firstvalue"); 
mylist.Add("secondvalue"); 

string getsecondvalue = mylist[1];//remember it starts at 0 so the first entry is mylist[0] 

Это пример того, как использовать функцию .Insert
то это будет работать, если в списке не имеет значения, вставленные (mylist.Count = 0)

mylist.Insert(0, "inserted"); 

однако если ваш список не имеет значения (mylist.Count = 0), и вы пытаетесь

mylist.Insert(1, "inserted"); 

это нарушило бы потому, что он не имеет никакого значения т О добавить в положении 0
Если же имелись данные в mylist было бы вставить его в положение 1 (как указано) и переместить один покоиться т.е. 1->2, 2->3, 3->4 и так далее

0

добавить функцию-оболочку с условие, что если индекс выше, чем размер списка, он будет добавлен в конце его.

public static void OrderIndex(List<ControlProperty> lControlProperty, ControlProperty controlProperty, int index) 
    { 
     if (lControlProperty.Count < index) 
     { 
      lControlProperty.Add(controlProperty); 
     } 
     else 
     { 
      lControlProperty.Insert(index, controlProperty); 
     } 
    } 

Зов это следующим образом:

OrderIndex(lstct, ct1, ct1.SortOrder); 
OrderIndex(lstct, ct, ct.SortOrder); 
0

Это Список ControlProperty

lstct.Add(ct); 
lstct.Add(ct1); 

Или очиститель

public class ControlProperty 
{   
    public int SortOrder { get; set; } 
    public string DisplayName { get; set; } 
    public ControlProperty (int sortOrder, string displayName) 
    { 
     SortOrder = sortOrder; 
     DisplayName = displayName; 
    } 
} 

lstct.Add(new ControlProperty(0, "text0"); 
lstct.Add(new ControlProperty(1, "text1"); 
Смежные вопросы