2015-11-17 2 views
0

У меня есть метод, как например:Как я могу удалить этот объект из списка?

public static document[] search(document type, searchword[] searchwords) {} 

Моя проблема здесь:

List<searchword> filledwords = new List<searchword>(); 

Я заселить в цикле, как, например: filledwords.Add(term);

Теперь, когда я пытаюсь вызвать метод поиска :

search(type, (searchword[])filledwords) 

У меня возникает ошибка ПРС, я даже сделал несколько проб и ошибок, как:

search(type, (searchword[])filledwords[0]) but no success. 

Это потому, что я уверен, преобразование проекта Java в C# и это мой первый месяц с C#.

Вот Эквивалент Java, которая работает:

List filledwords= new ArrayList(); 
filledwords.add(term); 
search(type,(SearchTerm[])filledwords.toArray(new SearchTerm[0])) 

Любой путеводитель я оценил.

+2

Было бы полезно, если бы вы добавили эти ошибки кастинга на свой вопрос – Sybren

+0

. В общем списке Net также есть метод ToArray(). Почему вы опустили это при переносе на C#? Просто вызовите поиск (тип, fillwords.ToArray()) –

+2

'fillwords.ToArray()' ... Во всяком случае, укажите фактическую ошибку и ваши исследования для нее в вашем вопросе. – CodeCaster

ответ

3

Вы можете использовать метод ToArray для преобразования списка в массив:

search(type, filledwords.ToArray()); 

альтернативы изменить подпись метода search, чтобы получить IEnumerable<searchword>, если вы только хотите перебрать поиск слова :

public static document[] search(document type, IEnumerable<searchword> searchwords) {} 

Тогда вам не нужно, чтобы бросить на все:

search(type, filledwords); 
+2

Вместо этого используйте IList . Это нужно делать. (Array неявно реализует интерфейс IList ). Или альтернативно используйте методы .ElementAt() или ElementAtOrDefault(). – CSharpie

Смежные вопросы