Linq ke XML mengatur XElements dari arrayList?

Saya mencoba mengatur XElements dengan ArrayList dan mengalami sedikit masalah. Saya pada dasarnya ingin dapat melakukan loop foreach, tetapi tidak yakin di mana saya harus memasukkannya.

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)))  

Ini tidak berhasil, meskipun ini berfungsi dengan baik, tetapi saya ingin nama kota, bukan nomor array

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

person Spooks    schedule 30.07.2010    source sumber


Jawaban (1)


Adakah alasan mengapa Anda menggunakan ArrayList daripada List<string> untuk memulai?

Jika Anda terpaksa menggunakan ArrayList maka Anda dapat melakukan:

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

... tapi sebaiknya gunakan List<string> jika memungkinkan.

Kalau tidak:

new XElement("Cities", lstCities.Items
                                .Cast<ListItem>()
                                .Select(x => new XElement("City", x.Text)))
person Jon Skeet    schedule 30.07.2010
comment
@Jon: Saya melewatkan putaran Anda lebih dari 200K (yang tampaknya terjadi beberapa jam yang lalu). Apakah ada pesta? - person James Curran; 30.07.2010
comment
@Jon: Daftar‹string› sepertinya tidak memiliki definisi Item... kecuali saya melewatkan sesuatu - person Spooks; 30.07.2010
comment
sudahlah, saat membuat Daftar‹string› (Daftar‹string› kota = Daftar‹string›() baru;) Saya tidak dapat menarik item apa pun, tetapi saya hanya menggunakan listBox saya dan itu berfungsi dengan baik, terima kasih! - person Spooks; 30.07.2010
comment
@Spooks: Anda akan menambahkan ke List<string> dengan cara yang persis sama seperti Anda menambahkan ke ArrayList. Saya sangat menyarankan agar Anda mempelajari lebih lanjut tentang kelas koleksi inti di .NET sebelum melangkah lebih jauh dengan database, XML, dll. - person Jon Skeet; 30.07.2010
comment
@Jon Saya tahu cara menambahkan ke Daftar. foreach (item ListItem di lstCities.Items) { kota.Tambahkan(item.Teks); } Saya hanya mengatakan kota.Item tidak berfungsi, tidak ada definisi untuk Item. - person Spooks; 30.07.2010
comment
@Spooks: Tapi di mana ada yang menyarankan penggunaan cities.Items? - person Jon Skeet; 30.07.2010
comment
@Jon Oh! Baca saja kode saya, Anda menggunakannya dari lstCities saya, saya lupa saya telah menambahkannya, dan mengira Anda adalah nama Anda untuk List‹string› baru Anda, kesalahan saya. - person Spooks; 30.07.2010