Приведенный ниже код работает, но я хочу оптимизировать код с использованием доходности или путем изменения алгоритма.Оптимизация кода с помощью алгоритма доходности или изменения
public IEnumerable<Book> GetAuthorWithBookName(string keyword)
{
var bookAndAuthorList = new List<Book>();
List<Author> AuthorNameList = getAuthorName(keyword);
foreach (var author in AuthorNameList)
{
XmlNode booksNames = getBook(author);
XDocument XDOCbooksNames = XDocument.Parse(booksNames.OuterXml);
var bookNameList = (
from x1 in XDOCbooksNames.Descendants("Books")
select x1.Elements("book").Select(g => g.Attribute("name").Value))
.ToList();
foreach (var bookName in bookNameList)
{
bookAndAuthorList.Add(new Book()
{
authorName = author.authorName,
bookName = bookName
});
}
}
return bookAndAuthorList;
}
public class Book
{
public string authorName { get; set; }
public string bookName { get; set; }
}
Использование 'yield' не даст вам реальной выгоды, так как вы все равно будете создавать новый объект' Book' на каждой итерации. –
@Aviad, который может помочь, если существует условие выхода в цикле, в котором используются экземпляры книг –
Оптимизируйте для чего? И почему? – LukeH