Faire notre propre liste

Pouvons-nous créer notre propre List en C # .NET? Je dois faire une liste ayant 3 chaînes différentes comme un seul élément de la liste.

Vous pouvez certainement créer votre propre classe appelée List avec trois parameters de type génériques. Je vous déconseillerais fortement de le faire cependant. Cela dérouterait quiconque utilise votre code.

Utilisez plutôt List> (si vous utilisez de toute façon .NET 4) ou créez (de préférence) votre propre classe pour encapsuler ces trois chaînes de manière significative, puis utilisez List .

La création de votre propre classe rendra les choses plus claires lorsque vous écrivez et lisez le code – en donnant un nom aux trois différentes chaînes impliquées, tout le monde saura ce qu’elles signifiaient. Vous pouvez également donner plus de comportement à la classe lorsque vous en avez besoin.

Vous pouvez utiliser un tuple pour y parvenir.

Par exemple:

 var list = new List>(); 

Pour parcourir les valeurs, vous pouvez faire un simple:

  list.ForEach(x=>{ //x is a Tuple }); 

ou pour trouver un morceau spécifique, vous pouvez faire ce qui suit:

  var list = new List>{ new Tuple("Hello", "Holla", "Ciao"), new Tuple("Buy", "--", "Ciao") }; list.Where(x=>x.Item2 == "--"); 

Cela retournera le dernier tuple.

Vous pouvez utiliser une liste de tuples . Ainsi:

 List> 

Peut-être quelque chose comme ça:

 var ls= new List>(); 

Je recommande cette solution

  public class MyCustomClass { public ssortingng MySsortingng1 { get; set; } public ssortingng MySsortingng2 { get; set; } public ssortingng MySsortingng3 { get; set; } } class MyApp { public MyApp() { List customList = new List(); customList.Add(new MyCustomClass { MySsortingng1 = "Hello", MySsortingng2 = "Every", MySsortingng3 = "Body", }); } } 

Par exemple:

 var list = new List>(); var tuple = Tuple.Create("a", "b", "c"); list.Add(tuple); 

Pour plus d’informations, consultez MSDN .

Pourquoi ne pas créer une List> ?

Une meilleure idée pourrait être cependant, si chacune des chaînes a une signification spécifique, de toutes les placer dans une classe, puis de créer une liste de cela.

Non, malheureusement ça ne marche pas. Le mieux que vous puissiez faire est de créer une liste de listes ou d’utiliser une forme d’implémentation de l’interface IDictionary.

Cela dit, si vous avez trois éléments de données qui vont ensemble de cette manière, il est probablement utile de créer une classe pour les contenir.

Cela vous donnerait ensuite la possibilité de passer une liste autour de votre application et d’atsortingbuer des noms significatifs à chaque donnée. Ne sous-estimez jamais le pouvoir de la lisibilité six mois plus tard.

Vous pouvez définir une liste et implémenter les interfaces nécessaires (telles que IList). Les codes explosent.

 public class List : IList { #region IList Members public int Add(object value) { throw new NotImplementedException(); } public void Clear() { throw new NotImplementedException(); } public bool Contains(object value) { throw new NotImplementedException(); } public int IndexOf(object value) { throw new NotImplementedException(); } public void Insert(int index, object value) { throw new NotImplementedException(); } public bool IsFixedSize { get { throw new NotImplementedException(); } } public bool IsReadOnly { get { throw new NotImplementedException(); } } public void Remove(object value) { throw new NotImplementedException(); } public void RemoveAt(int index) { throw new NotImplementedException(); } public object this[int index] { get { throw new NotImplementedException(); } set { throw new NotImplementedException(); } } #endregion #region ICollection Members public void CopyTo(Array array, int index) { throw new NotImplementedException(); } public int Count { get { throw new NotImplementedException(); } } public bool IsSynchronized { get { throw new NotImplementedException(); } } public object SyncRoot { get { throw new NotImplementedException(); } } #endregion #region IEnumerable Members public IEnumerator GetEnumerator() { throw new NotImplementedException(); } #endregion } 

Cependant, List> est recommandée.

 public class Listt< T, T1, T2> { public Listt() { } public void Add(T item, T1 item1, T2 item3) { } } public partial class MyApp : Window { public MyApp() { InitializeComponent(); Listt customList = new Listt(); customList.Add("we","are","here"); } } 

Quelqu’un a essayé dynamic ?

 var list = new List(); list.Add(new { Name = "SampleN", Address = "SampleA", Email = "SampleE" }); var name = list[0].Name;