Rumah >pembangunan bahagian belakang >C++ >Bolehkah Kelas Tanpa Nama Disimpan dalam Senarai Generik C#?

Bolehkah Kelas Tanpa Nama Disimpan dalam Senarai Generik C#?

Patricia Arquette
Patricia Arquetteasal
2025-01-04 12:19:36922semak imbas

Can Anonymous Classes Be Stored in C# Generic Lists?

Kelas Tanpa Nama dalam Senarai Generik

Dalam C# 3.0, anda mempunyai fleksibiliti untuk mentakrifkan kelas tanpa nama menggunakan sintaks:

var o = new { Id = 1, Name = "Foo" };

Persoalan biasa timbul sama ada mungkin untuk menyimpan kelas tanpa nama ini dalam senarai generik. Mari kita teroka isu ini.

Pertimbangkan contoh berikut:

var o = new { Id = 1, Name = "Foo" };
var o1 = new { Id = 2, Name = "Bar" };

List list = new List();
list.Add(o);
list.Add(o1);

Senario alternatif melibatkan penambahan kelas tanpa nama dalam gelung:

List<var> list = new List<var>();

while (...)
{
    ....
    list.Add(new { Id = x, Name = y });
    ....
}

Penyelesaian:

Untuk menyelesaikan masalah ini, anda boleh menggunakan pendekatan seperti:

var list = new[] { o, o1 }.ToList();

Sebagai alternatif, anda boleh menggunakan inferens jenis menggunakan kaedah generik:

public static List<T> CreateList<T>(params T[] elements)
{
    return new List<T>(elements);
}

var list = CreateList(o, o1);

Melaksanakan teknik ini membolehkan anda mengurus kelas tanpa nama dengan berkesan dalam senarai generik.

Atas ialah kandungan terperinci Bolehkah Kelas Tanpa Nama Disimpan dalam Senarai Generik C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn