2013-12-16 2 views
-3

Heyy, я получаю эту ошибку: Ошибка 2 Не удается неявно преобразовать тип' System.Collections. Generic.List 'до' Hilversum.GeluidsfragmentОшибка t t 2 Не удается неявно преобразовать тип 'System.Collections.Generic.List <Hilversum.Geluidsfragment>' на 'Hilversum.Geluidsfragment

на этой линии:

Geluidsfragment fragment = bgExperience.GetFragmenten(item) 

в этом коде:

private void info_MouseDoubleClick(object sender, MouseEventArgs e) 
{ 
    int index = this.info.IndexFromPoint(e.Location); 
    string item = info.Items[index].ToString(); 
    tbFragmentNr.Text = item; 
    Geluidsfragment fragment = bgExperience.GetFragmenten(item); 
    try 
    { 
     lbAfspeelInfo.Text = fragment.AlsString(); 

     fragment.Play(); 
    } 
    catch (NullReferenceException ex) 
    { 
     MessageBox.Show("Nummer bestaat niet"); 
    } 
} 

Это GetFragmenten Methode:

public List<Geluidsfragment> GetFragmenten(String p) 
    { 
     List<Geluidsfragment> resultaten = new List<Geluidsfragment>(); 

     foreach (Geluidsfragment fragment in fragmenten) { 
      if (fragment.Titel.IndexOf(p) != -1) { 
       resultaten.Add(fragment); 
      } 
     } 

     return resultaten; 
    } 

Это AlsString Methode:

public String AlsString() 
     { 
      return "Nr " + nr + ": " + titel + " - " + TijdsduurString; 
     } 

Пожалуйста, помогите мне :(

+1

Мне кажется, что метод возвращает List , а переменная - всего лишь один экземпляр объекта. –

ответ

1

Вы вызываете функцию, которая возвращает

public List<Geluidsfragment> GetFragmenten(String p) 
{ 
    //... 
} 

Но вы назначаете его переменной, которая не содержит список, и вместо этого выполняется как Ingle пример:

Geluidsfragment fragment = bgExperience.GetFragmenten(item); 

должно быть:

List<Geluidsfragment> fragmenten = bgExperience.GetFragmenten(item); 

EDIT: Оттуда вы могли бы сделать что-то вроде:

foreach (Geluidsfragment fragment in fragmenten) 
{ 
    fragment.Play(); 
} 

Я думаю, что есть более фундаментальная проблема, хотя. Похоже, вы хотите воспроизвести аудиоклип, когда что-то дважды щелкнуло ... но ваша функция GetFragmenten возвращает несколько клипов. Это действительно то, что вы хотите?

+0

О, да, правда, но теперь у меня есть две новые ошибки: – Rajco

+0

Ошибка «System.Collections.Generic.List » не содержит определения для «Воспроизвести» и никакого метода расширения «Воспроизвести», принимающего можно найти первый аргумент типа «System.Collections.Generic.List » (вам не хватает директивы using или ссылки на сборку?) – Rajco

+2

@ user3109152: вы пытались прочитать сообщение об ошибке? Или вы ожидаете, что напишете какой-нибудь грязный код, и мы исправим его для вас? – zerkms

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