2017-02-07 5 views
0

У меня есть ArrayList, он имеет string на 0-й позиции и DataTable на 1-й позиции можно получить DataTable назад?как получить dataTable от arraylist, в котором хранится dataTable?

ArrayList dataModel = new ArrayList(); 
DataTable dt = new DataTable(); 
dt.Columns.Add("A"); 
dt.Columns.Add("B"); 
dt.Columns.Add("C"); 
dt.Rows.Add("1","Rahul","Vapi"); 
dt.Rows.Add("2", "Yash", "Vapi"); 
dt.Rows.Add("3", "Dinesh", "vapi"); 

dataModel.Add("this is working for me"); 
dataModel.Add(dt); 

Я получаю эту ошибку:

Не удается неявно преобразовать тип 'объект' на 'System.Data.DataTable'. Явное преобразование существует (вы пропали без вести броска?)

+0

Это так неправильно ... как об использовании 'List >' – Pikoh

+0

@Pikoh: Конечно, вам не нужно больше использовать 'ArrayList'. Но ваш пример не помогает. OP имеет только два элемента, строку и «DataTable». Поэтому, если вы хотите заменить это на общую коллекцию, вам нужно использовать «Список », и в этом случае вам также нужно будет бросить предметы. –

+0

@pikoh: потому что это то, как OP использует arraylist. Ему не нужен способ хранения нескольких комбинаций string-DataTable, которые вы могли бы обрабатывать с помощью «List >». Существует только одна строка и одна DataTable. Конечно, он должен использовать две отдельные переменные (локальные переменные, свойства или поля) или класс, который инкапсулирует оба. –

ответ

1

(вы пропали без вести броска?)

Да.

DataTable dt = (DataTable) dataModel[1];