LINQ

2010-12-13 15 views
19

ile veri kümesinden tek sütun seçin Sadece tüm bu LINQ öğelerinin etrafına bakıyorum ve sanırım ilk engelde kaldım.LINQ

ben gibi bir datatable var:

OrderNo  LetterGroup Filepath 
----------- ----------- -------------------------------------------------- 
0   0   Letters/SampleImage.jpg 
0   0   Letters/UKPC7_0.jpg 
0   0   Letters/UKPC8_0.jpg 

İhtiyacım olan dize diziye Filepath sütundan filepaths tüm elde etmektir. LINQ'ın bunun için mükemmel olacağını düşündüm (doğru muyum?), Ama doğru sorguyu inşa edemiyorum.

kimse bana doğru yönde işaret olacak bazı kod örnekleri sağlayabilir

? Etrafta aradım - ama hiçbir yere gitmiyor gibiyim.

cevap

30

verilerle çalışma yapmak uzatma yöntemleri çok daha kolay vardır setleri şunlardır:

var filePaths = dataTable 
    .AsEnumerable() 
    .Select(row => row.Field<string>("Filepath")) 
    .ToArray(); 
11
string[] filePaths = (from DataRow row in yourDataTable.Rows 
        select row["Filepath"].ToString()).ToArray(); 
+0

Bu hiç LINQ kullanmıyor. – poindexter12

+2

@ poindexter12 - Ne? Elbette bana LINQ gibi görünüyor. – jfar

+0

@jfar: Bu teknik olarak LINQ sözdizimi, bu yüzden aşağı oyumu kaldırdım. Ancak, buradaki ruhta, açıklanabilir biraz daha fazla olduğunu düşünüyorum. – poindexter12

2

Eğer:

using System.Data.Linq; 

var filePaths = 
    from row in dataTable.AsEnumerable() 
    select row.Field<string>("Filepath"); 

var filePathsArray = filePaths.ToArray(); 

Ayrıca, bir açıklamada koymak için yöntem sözdizimi kullanabilirsiniz LINQ'yi sonuna kadar kullanmak, veritabanınızı kurmak ve bir içerik nesnesi oluşturmak. O zaman böyle bir şey yapmak mümkün olmalıdır: satır Haddini aşmak İlk sütun adıyla tahmin siparişler, adlı için Bu tablo üstleniyor

var filepaths = from order in _context.Orders 
       select order.Filepath; 

.

var results = from order in _context.Orders 
       select new 
       { 
        order.OrderNo, 
        order.Filepath 
       } 

Bu, hem o içerdiği yeni bir anonim türü verecekti: Eğer dosya yolu bunu gibi bir şey yapabileceğini nereden geldiğini bilmek için daha sonra kullanmak için de sipariş sayı kümesi dönmek istiyorsa özellikler olarak değerler.