Linq เป็น XML ตั้งค่า XElements จาก arrayList หรือไม่

ฉันกำลังพยายามตั้งค่า XElements ด้วย ArrayList และประสบปัญหาเล็กน้อย โดยพื้นฐานแล้วฉันต้องการทำ foreach loop ได้ แต่ไม่แน่ใจว่าจะต้องแทรกมันไว้ที่ไหน

ArrayList cities = new ArrayList();
foreach (ListItem item in lstCities.Items)
{
    cities.Add(item.Text);
}

new XElement("Cities", cities //not sure what to do here
                            .Select(x=>new XElement("City",x)))  

สิ่งนี้ใช้งานไม่ได้แม้ว่าจะใช้ได้ดีกับสิ่งนี้ แต่ฉันต้องการชื่อเมือง ไม่ใช่หมายเลขอาร์เรย์

new XElement("Countries", lstCountry.GetSelectedIndices()
                              .Select(x => new XElement("Country", x))

person Spooks    schedule 30.07.2010    source แหล่งที่มา


คำตอบ (1)


มีเหตุผลใดที่คุณใช้ ArrayList แทนที่จะเป็น List<string> เพื่อเริ่มต้นด้วย

หากคุณ บังคับ ให้ใช้ ArrayList คุณก็สามารถทำได้:

cities.Cast<string>()
      .Select(x => new XElement("City", x)

... แต่คุณควรใช้ List<string> จะดีกว่าถ้าเป็นไปได้

อีกทางหนึ่ง:

new XElement("Cities", lstCities.Items
                                .Cast<ListItem>()
                                .Select(x => new XElement("City", x.Text)))
person Jon Skeet    schedule 30.07.2010
comment
@จอน: ฉันพลาดการกลิ้งของคุณไปมากกว่า 200K (ซึ่งดูเหมือนจะผ่านไปสองสามชั่วโมงแล้ว) มีงานปาร์ตี้ไหม? - person James Curran; 30.07.2010
comment
@จอน: List‹string› ดูเหมือนจะไม่มีคำจำกัดความของ Items... เว้นแต่ฉันจะพลาดอะไรบางอย่างไป - person Spooks; 30.07.2010
comment
ไม่เป็นไร เมื่อสร้าง List‹string› (List‹string›เมือง = new List‹string›();) ฉันไม่สามารถดึงรายการใด ๆ ได้ แต่ฉันเพิ่งใช้กล่องรายการของฉันและมันก็ใช้ได้ดี ขอบคุณ! - person Spooks; 30.07.2010
comment
@Spooks: คุณจะต้องเพิ่ม List<string> ในลักษณะเดียวกับที่คุณเพิ่มใน ArrayList ฉัน อย่างยิ่ง ขอแนะนำให้คุณเรียนรู้เพิ่มเติมเกี่ยวกับคลาสคอลเลกชันหลักใน .NET ก่อนที่จะไปเจาะลึกเรื่องฐานข้อมูล XML ฯลฯ มากเกินไป - person Jon Skeet; 30.07.2010
comment
@ จอนฉันรู้วิธีเพิ่มลงในรายการ foreach (รายการ ListItem ใน lstCities.Items) { cities.Add(item.Text); } ฉันแค่กำลังบอกว่าเมืองไอเท็มใช้งานไม่ได้ไม่มีคำจำกัดความสำหรับไอเท็ม - person Spooks; 30.07.2010
comment
@Spooks: แต่มีใครแนะนำให้ใช้ cities.Items ที่ไหน? - person Jon Skeet; 30.07.2010
comment
@จอน โอ้! แค่อ่านโค้ดของฉันให้จบ คุณใช้มันกับ lstCities ของฉัน ฉันลืมไปแล้วว่าฉันได้เพิ่มเข้าไป และคิดว่าคุณคือชื่อของคุณสำหรับ List‹string› ใหม่ของคุณ แย่เลย - person Spooks; 30.07.2010