ในขณะที่ค้นหาคำตอบสำหรับคำถามนี้ฉันพบคนที่คล้ายกันโดยใช้ LINQ แต่ฉันไม่สามารถเข้าใจพวกเขาได้อย่างสมบูรณ์ (และใช้พวกเขา) เนื่องจากฉันไม่คุ้นเคย สิ่งที่ฉันต้องการโดยพื้นฐานคือ:
- ตรวจสอบว่าองค์ประกอบใด ๆ ของรายการมีสตริงเฉพาะ
- ถ้าเป็นเช่นนั้นรับองค์ประกอบนั้น
ฉันไม่รู้จะทำอย่างไร สิ่งที่ฉันสามารถทำได้คือ (ไม่ทำงานแน่นอน):
if (myList.Contains(myString))
string element = myList.ElementAt(myList.IndexOf(myString));
ฉันรู้ว่าทำไมมันไม่ทำงาน:
myList.Contains()
ไม่ส่งคืนtrue
เนื่องจากจะตรวจสอบว่าองค์ประกอบทั้งหมดของรายการตรงกับสตริงที่ฉันระบุmyList.IndexOf()
จะไม่พบสิ่งที่เกิดขึ้นเนื่องจากเป็นกรณีอีกครั้งมันจะตรวจสอบองค์ประกอบที่ตรงกับสตริง
ยังฉันไม่มีเงื่อนงำวิธีการแก้ปัญหานี้ แต่ฉันคิดว่าฉันจะต้องใช้ LINQ ตามที่แนะนำในคำถามที่คล้ายกันเพื่อเหมือง ที่ถูกกล่าวว่าถ้าเป็นกรณีที่นี่ฉันต้องการให้ผู้ตอบเพื่ออธิบายการใช้งาน LINQ ในตัวอย่างของพวกเขา (ดังที่ฉันบอกว่าฉันไม่ได้ใส่ใจกับมันในเวลาที่ฉันใช้ C #) ขอบคุณล่วงหน้าพวก (และ gals?)
แก้ไข: ฉันได้มาด้วยวิธีการแก้ปัญหา; เพียงแค่วนดูรายการตรวจสอบว่าองค์ประกอบปัจจุบันมีสตริงและจากนั้นตั้งค่าสตริงเท่ากับองค์ประกอบปัจจุบัน ฉันสงสัยว่ามีวิธีที่มีประสิทธิภาพมากกว่านี้หรือไม่?
string myString = "bla";
string element = "";
for (int i = 0; i < myList.Count; i++)
{
if (myList[i].Contains(myString))
element = myList[i];
}
myString
ในวงปัจจุบันของคุณคุณจะได้รับองค์ประกอบสุดท้าย มันขึ้นอยู่กับคุณถ้าคุณต้องการหาคนแรกหรือคนสุดท้ายถ้าคุณแค่อยากจะหาคนแรกจากนั้นก็แบ่งวงหลังจากค้นหารายการ