我目前正在与TvDbSharper(https://github.com/HristoKolev/TvDbSharper)玩,并且我对IEnumerable有疑问。 我想做的是获取给定系列的所有ID,然后将结果添加到listView中。
此代码为我提供了列表中的第一个ID:
const int SeriesId = 78804;
var tasks = new List<Task<TvDbResponse<BasicEpisode[]>>>();
var firstResponse = await client.Series.GetEpisodesAsync(SeriesId, 1);
for (int i = 2; i <= firstResponse.Links.Last; i++)
{
tasks.Add(client.Series.GetEpisodesAsync(SeriesId, i));
}
var results = await Task.WhenAll(tasks);
var episodes = firstResponse.Data.Concat(results.SelectMany(x => x.Data));
epsListview.View = View.Details;
epsListview.Columns.Add("Episode", 100);
string[] arr = new string[4];
ListViewItem itm;
arr[0] = episodes.First().Id.ToString();
itm = new ListViewItem(arr);
epsListview.Items.Add(itm);
但是我想要的是在epsListview中为每个可用ID添加新行。
我从未使用过IEnumerable,但我还是使用c#的新手,我已经在这个问题上呆了一个多星期了。有人可以帮我吗?
谢谢!
答案 0 :(得分:1)
您似乎想从IEnumerable情节构建ID数组,并将该数组添加到单个ListViewItem中。这应该做到这一点。
string[] arr = episodes.Select(episode => episode.Id.ToString()).ToArray()
ListViewItem itm = new ListViewItem(arr);
epsListview.Items.Add(itm);