Geçenlerde Java üzerinden c # taşıma kullanmaya başladım. Bir liste öğesini dizine nasıl alacağımı bulamıyorum. Java'da listenin ilk öğesini almak için:
list1.get(0);
C # 'de eşdeğeri nedir?
Geçenlerde Java üzerinden c # taşıma kullanmaya başladım. Bir liste öğesini dizine nasıl alacağımı bulamıyorum. Java'da listenin ilk öğesini almak için:
list1.get(0);
C # 'de eşdeğeri nedir?
Yanıtlar:
list1[0];
Listenin türünün tanımlanmış bir dizinleyici olduğu varsayılarak.
Listedeki ElementAt uzantı yöntemini kullanabilirsiniz.
Örneğin:
// Get the first item from the list
using System.Linq;
var myList = new List<string>{ "Yes", "No", "Maybe"};
var firstItem = myList.ElementAt(0);
// Do something with firstItem
using System.Linq;
.
myList[0]
gösterime göre bunun bir avantajı var mı ?
.ElementAtOrDefault();
myCollectionWhichMightBeNull?.ElementAt(0)
veya mevcut olmayan bir öğeye karşı korumak için:myCollection.ElementAtOrDefault(0)?.SomeProperty
Visual Basic, C # ve C ++ tüm öğe adını kullanmadan erişmek için sözdizimi vardır. Bunun yerine, List'i içeren değişken bir diziymiş gibi kullanılır.
List[index]
Örneğin, bkz. Https://msdn.microsoft.com/en-us/library/0ebtbkkc(v=vs.110).aspx
Eski soru, ama bu konunun oldukça yakın zamanda aktif olduğunu görüyorum, bu yüzden devam edip iki sentimi atacağım:
Mitch'in söylediklerini tam olarak söylediler. Doğru indeksleme varsayarsak, bir diziye erişiyormuşsunuz gibi köşeli parantez gösterimini kullanabilirsiniz. Bununla birlikte, sayısal dizini kullanmaya ek olarak, üyeleriniz belirli adlara sahipse, genellikle aşağıdaki gibi bir şey yazarak aynı anda bir arama / erişim yapabilirsiniz:
var temp = list1["DesiredMember"];
Ne kadar çok bilirsen, değil mi?
.NET List
veri yapısı Array
bir "değiştirilebilir kabuk" içinde.
Böylece, aşağıdaki gibi öğelere erişmek için dizinleri kullanabilirsiniz:
var firstElement = myList[0];
var secondElement = myList[1];
C # 8.0 ile başlayarak Index
ve Range
elemanlara erişmek için sınıfları kullanabilirsiniz . Sekansın sonundan erişim sağlar veya sadece sekansın belirli bir kısmına erişir:
var lastElement = myList[^1]; // Using Index
var fiveElements = myList[2..7]; // Using Range, note that 7 is exclusive
Dizinleri ve aralıkları birlikte birleştirebilirsiniz:
var elementsFromThirdToEnd = myList[2..^0]; // Index and Range together
Ayrıca LINQ ElementAt
yöntemini kullanabilirsiniz, ancak vakaların% 99'u için bu gerçekten gerekli değildir ve sadece yavaş performans çözümü değildir.