ฉันเพิ่งเริ่มใช้ c # ย้ายจาก Java ฉันไม่สามารถหาวิธีรับไอเท็มตามดัชนีได้ ใน java เพื่อให้ได้ไอเท็มแรกของรายการมันจะเป็น:
list1.get(0);
อะไรคือสิ่งที่เทียบเท่าใน c #?
ฉันเพิ่งเริ่มใช้ c # ย้ายจาก Java ฉันไม่สามารถหาวิธีรับไอเท็มตามดัชนีได้ ใน java เพื่อให้ได้ไอเท็มแรกของรายการมันจะเป็น:
list1.get(0);
อะไรคือสิ่งที่เทียบเท่าใน c #?
คำตอบ:
list1[0];
ประเภทรายการของสมมติว่ามีการกำหนดดัชนี
คุณสามารถใช้วิธีการขยาย ElementAt ในรายการ
ตัวอย่างเช่น:
// 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]
สัญกรณ์มาตรฐานหรือไม่?
.ElementAtOrDefault();
myCollectionWhichMightBeNull?.ElementAt(0)
หรือเพื่อปกป้อง Againt องค์ประกอบที่ไม่มีอยู่:myCollection.ElementAtOrDefault(0)?.SomeProperty
Visual Basic, C # และ C ++ ทั้งหมดมีไวยากรณ์สำหรับการเข้าถึงคุณสมบัติรายการโดยไม่ต้องใช้ชื่อ แต่จะใช้ตัวแปรที่มีรายการแทนราวกับว่าเป็นอาร์เรย์
List[index]
ดูตัวอย่าง: https://msdn.microsoft.com/en-us/library/0ebtbkkc(v=vs.110).aspx
คำถามเก่า แต่ฉันเห็นว่าเธรดนี้ใช้งานได้ค่อนข้างเร็ว ๆ นี้ดังนั้นฉันจะไปข้างหน้าและโยนสองเซ็นต์ของฉัน:
สวยมากอย่างที่ Mitch พูด สมมติว่าการจัดทำดัชนีที่เหมาะสมคุณสามารถไปข้างหน้าและใช้สัญกรณ์วงเล็บเหลี่ยมราวกับว่าคุณกำลังเข้าถึงอาร์เรย์ นอกเหนือจากการใช้ดัชนีตัวเลขหากสมาชิกของคุณมีชื่อเฉพาะแล้วคุณยังสามารถค้นหา / เข้าถึงพร้อมกันได้โดยการพิมพ์ดังนี้:
var temp = list1["DesiredMember"];
ยิ่งคุณรู้ใช่มั้ย
List
โครงสร้างข้อมูล. NET คือArray
ใน "เชลล์ที่ไม่แน่นอน"
ดังนั้นคุณสามารถใช้ดัชนีเพื่อเข้าถึงองค์ประกอบของมันเช่น:
var firstElement = myList[0];
var secondElement = myList[1];
เริ่มต้นด้วยC # 8.0คุณสามารถใช้Index
และRange
คลาสเพื่อเข้าถึงองค์ประกอบ พวกเขาให้การเข้าถึงจากจุดสิ้นสุดของลำดับหรือเพียงแค่เข้าถึงส่วนหนึ่งของลำดับ:
var lastElement = myList[^1]; // Using Index
var fiveElements = myList[2..7]; // Using Range, note that 7 is exclusive
คุณสามารถรวมดัชนีและช่วงเข้าด้วยกัน:
var elementsFromThirdToEnd = myList[2..^0]; // Index and Range together
นอกจากนี้คุณสามารถใช้ElementAt
วิธีLINQ แต่สำหรับ 99% ของกรณีนี้ไม่จำเป็นจริงๆและเพียงแค่การแก้ปัญหาประสิทธิภาพช้า
คุณสามารถใช้ดัชนีเพื่อเข้าถึงองค์ประกอบรายการ
List<string> list1 = new List<string>();
list1[0] //for getting the first element of the list