'MyObject' не содержит определения для - C#

Узнай цену своей работы

Формулировка задачи:

Есть класс:
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Xml.Serialization;
  7. namespace radio.Models
  8. {
  9. [Serializable]
  10. public class Song
  11. {
  12. [XmlAttribute]
  13. public int ID { get; set; }
  14. [XmlAttribute]
  15. public string Name { get; set; }
  16. [XmlAttribute]
  17. public string Artist { get; set; }
  18. [XmlAttribute]
  19. public int Duration { get; set; }
  20. [XmlAttribute]
  21. public string Album { get; set; }
  22. [XmlAttribute]
  23. public int Year { get; set; }
  24. [XmlArrayItem(Type = typeof(Tag))]
  25. public List<Tag> Tags { get; set; }
  26. [XmlArrayItem(Type = typeof(Genre))]
  27. public List<Genre> Genres { get; set; }
  28. [XmlIgnore]
  29. public string Path { get; set; }
  30. [XmlIgnore]
  31. public string StringDuration
  32. {
  33. set { StringDuration = value; }
  34. get { return getStringDuration(Duration); }
  35. }
  36. public Song() { }
  37. public Song(int ID, string Name, string Artist, int Duration, List<Tag> Tags, List<Genre> Genres, int Year)
  38. {
  39. this.ID = ID;
  40. this.Name = Name;
  41. this.Artist = Artist;
  42. this.Duration = Duration;
  43. this.Tags = Tags;
  44. this.Genres = Genres;
  45. this.Year = Year;
  46. }
  47. public override string ToString()
  48. {
  49. return Name;
  50. }
  51. }
  52. }
И есть метод в другом классе:
Листинг программы
  1. public ObservableCollection<Song> Search<Song>(SearchParams searchParams, ObservableCollection<Song> listToSearch)
  2. {
  3. List<Song> searchResults = new List<Song>();
  4. foreach (Song song in listToSearch)
  5. {
  6. if (song.Name.ToLower().Equals(searchParams.Name.ToLower()))
  7. {
  8. searchResults.Add(song);
  9. }
  10. }
  11. ObservableCollection<Song> listItems = listToSearch.Where(i => i.Song == searchParams.Name);
  12. return null;
  13. }
Не понимаю, почему в строках
Листинг программы
  1. if (song.Name.ToLower().Equals(searchParams.Name.ToLower()))
и
Листинг программы
  1. i => i.Name == searchParams.Name
Ошибка: "Song" не содержит определение для "Song". Не удалось найти метод расширения "Song", принимающий первый аргумент типа "Song" (пропущена директива using или ссылка на сборку?) Свойства же объявлены, get прописан. В чем дело? В сериализации? Да вряд ли.

Решение задачи: «'MyObject' не содержит определения для»

textual
Листинг программы
  1. public ObservableCollection<Song> Search(SearchParams searchParams, ObservableCollection<Song> listToSearch)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.167 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы