- Я создал класс (ConflictingBooking), который содержит поля для различной информации в отношении конкретного резервирования.
- Я просматриваю базу данных и выбираю определенные оговорки на основе определенных критериев.
- Я хочу создать экземпляр класса с выбранными определенными критериями.
- Затем я хочу добавить каждый из этих экземпляров класса в список, который я буду использовать в другом месте.
Проблема у меня есть на шаге 3. Я хочу, чтобы имя нового экземпляра что-то вроде «нашел [я]», где я увеличивается для каждой оговорки найдено:Создание экземпляров классов во время выполнения
ConflictingBooking found = new ConflictingBooking();
found.BookingNumber = conflictingBookingNumber;
found.BookingStarts = conflictingBookingDT;
conflictingBookings.Add(found);
В приведенном выше коде, Мне нужно заменить «найденный» программно.
Несмотря на то, что я хотел бы получить простой фрагмент кода, я также хотел бы прочитать некоторую ссылку, чтобы я знал, что я делаю :-). Я просто не знаю, как решить мою проблему.
Кажется, я не совсем понятно - здесь соответствующий код:
dbManager.Open();
dbManager.ExecuteReader(CommandType.Text, string.Format("SELECT BookingDate, {0} FROM BTable WHERE Court IN {1} AND BookingDate IN ({2})", columns, facilityIDs, bookingDates));
using (IDataReader rdr = dbManager.DataReader)
{
decimal conflictingBookingNumber = 0;
DateTime conflictingBookingDT;
object result = null;
while (rdr.Read())
{
for (int i = 0; i < requestedColumnNames.Count; i++)
{
result = dbManager.DataReader[requestedColumnNames[i].ToString()];
if (result != null)
conflictingBookingNumber = Convert.ToDecimal(result);
result = dbManager.DataReader["BookingDate"];
if (result != null)
conflictingBookingDT = Convert.ToDateTime(result);
if (conflictingBookingNumber > 0)
{
int next = conflictingBookings.Count + 1;
ConflictingBooking found = new ConflictingBooking();
found.BookingNumber = conflictingBookingNumber;
found.BookingStarts = conflictingBookingDT;
// conflictingBookings is a List<conflictingBooking>
conflictingBookings.Add(found);
}
}
}
}
Надежда, что проясняет мою проблему.
Что именно вы «замените найденным программным путем»? Я понимаю, что фрагмент кода, который вы предоставляете, будет охватываться в какой-то итерации, где вы будете заполнять свою коллекцию. Не могли бы вы прояснить? – JohnP 2010-12-01 00:09:16
Так в чем же проблема с вашим кодом? Оператор `new` выполняет именно это - создает новый экземпляр класса. Возможно, это поможет, если вы уточните * почему * вам нужно заменить «found», который является именем переменной. – Serguei 2010-12-01 00:10:29