ve tüm değerlerini döndürür -
http://msdn.microsoft.com/en-us/library/system.data.datatableextensions.aspx
Ve DataRowExtensions sınıfı - Sen DataTableExtensions sınıfını kontrol etmelidir dizi dizisi.
bu yaklaşımları deneyin:
int columnIndex = 2; // desired column index
// for loop approach
string[] results = new string[dt.Rows.Count];
for (int index = 0; index < dt.Rows.Count; index++)
{
results[index] = dt.Rows[index][columnIndex].ToString();
}
// LINQ
var result = dt.Rows.Cast<DataRow>()
.Select(row => row[columnIndex].ToString())
.ToArray();
yerine columnName
ile columnIndex
yerini alabilir, örneğin:
string columnName = "OrderId";"
EDIT: özel olarak ama durumda bir dize dizisi için sordunuz İlk örnekte for döngüsünden önce dizi uzunluğunu belirlemeyi ve sadece ite eklemeyi önlemek için List<string>
'u tercih ederim. ms. Bunun yerine bir foreach döngüsünü kullanmak için de iyi bir fırsat.
şöyle Sonra kodu yeniden olacaktır:
List<string> list = new List<string>();
foreach (DataRow row in dt.Rows)
{
list.Add(row[columnIndex].ToString());
}
Şunları belirtebilir misiniz? Herhangi bir Datarow, sizin için tanımlanan sütunlarla aynı sırada bir nesne dizisi geri veren ItemArray özelliğine sahiptir. Nesneleri dizelere dönüştürmek, her değerindeki ToString() öğesini çağırmak kadar kolay olurdu, ancak belki de istediğiniz başka bir şey olabilir ... – flq
DataColumn'un bir dizi dizeye dönüştürülecek değerleri, ancak en iyi şekilde arıyorum Bunu uygulamak için yöntem. – Ahmed