Как создать текстовый файл из объединенного списка LINQ? - PullRequest
0 голосов
/ 25 января 2012

У меня есть 2 списка LINQ-to-SQL, и я объединяю их в 1 список, используя:

var mergedList = List1.Union(List2);

Я предполагаю, что команда Union удалит все дубликаты в списке.Это правильно?Во всяком случае, я пытаюсь записать содержимое объединенного списка в CSV-файл.Я получаю ошибки, когда пытаюсь вызвать список:

WriteToCSVFile cf = new WriteToCSVFile(mergedList);

, и вот как я построил свой класс:

public WriteToCSVFile(IEnumerable<T> mergedList)

Что я здесь не так делаю?*

Кстати, вот ошибки, которые я получаю:

The type arguments for method 'WriteToCSVFile.WriteToCSVFile(System.Collections.Generic.IEnumerable<T>)' cannot be inferred from the usage. Try specifying the type arguments explicitly.
The type or namespace name 'T' could not be found (are you missing a using directive or an assembly reference?) 

Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.И заранее спасибо.

Ответы [ 3 ]

3 голосов
/ 25 января 2012

Вы должны сделать свой класс родовым

public class WriteToCSVFile<T>
{
    public WriteToCSVFile(IEnumerable<T> mergedList)
    {

    }

    ...
}

и при его вызове указывать универсальный тип аргумента, потому что универсальные типы не могут быть выведены из конструкторов:

var cf = new WriteToCSVFile<TheTypeOfElementsInYourList>(mergedList);

Вывод типа работает только с методами, поэтому вы можете написать метод расширения :

public static class CsvExtensions
{
    public static void WriteToCSVFile<T>(this IEnumerable<T> list)
    {
        ...
    }
}

и затем:

mergedList.WriteToCSVFile();

О, и я искренне надеюсь, что вы не запускаете свой собственный анализатор CSV , а вы?

0 голосов
/ 25 января 2012

Поскольку ваш метод является универсальным, я предполагаю, что вы передаете неуниверсальный список.Я предполагаю, что ваши типы списка определены как

List list1= new List();

Он должен быть определен как

List<yourType> list1 = new List<yourType>();
0 голосов
/ 25 января 2012

Анонимные типы нельзя использовать в качестве параметра типа для универсальных методов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...