2011-12-20 2 views
-4

Я создал datatable с двумя колонками и четырьмя рядами. Я пытаюсь получить информацию из строки linq на основе информации, которую я предоставляю в инструкции запроса для одного столбца, но ничего не получаю в инструкции console.write.Linq to DataSet?

var super = 
     from lang in JapanesePhrases.AsEnumerable() 
     where lang.Field<string>("Meaning") == "Song of Truth" 
     select lang.Field<string>("Phrase"); 

    foreach (string item in super) 
    { 
     Console.Write(item + "\n"); 
    } 
+0

Вы ожидаете .ToList в конце вашего Select .. lang.Field - это общий вид, так как ваш оператор linq неверен .. – MethodMan

+1

Готов поспорить, что вы могли бы улучшить этот заголовок, если хотите: что _about_ Linq to DataSet ? –

+1

@Mimisbrunnr: это C#. Является ли 'super' зарезервированным в C#? –

ответ

1

я попытался Теперь этот код:

var table = new DataTable(); 
    table.Columns.Add("Meaning"); 
    table.Columns.Add("Phrase"); 

    for (int i = 0; i < 5; i++) 
    { 
     var row = table.NewRow(); 
     row["Meaning"] = "Meaning"+i; 
     row["Phrase"] = "Phrase"+i; 
     table.Rows.Add(row); 
    } 

    var super = from lang in table.AsEnumerable() 
       where lang.Field<string>("Meaning") == "Meaning1" 
       select lang.Field<string>("Phrase"); 

    foreach (string item in super) 
    { 
     Console.Write(item + "\n"); 
    } 

    Console.ReadLine(); 

работает плавно.

Я должен проверять данные в формате datatable.

+0

Опять же, datatable прекрасно, единственное отличие состоит в том, что у меня есть 4 строки данных DataRow rows = table.NewRow(); строки ["Фраза"] = "данные"; строки ["Значение"] = "данные"; table.Rows.Add (строки); DataRow rows = table.NewRow(); строки ["Фраза"] = "данные"; строки ["Значение"] = "данные"; table.Rows.Add (строки); – DaNet

+0

вам следует взглянуть на супер-отладочную работу. Устанавливается супер? – sinanakyazici

+0

Спасибо sinanakyazici Я буду – DaNet