私は次のクラスを持っています:
public class Grouping<TKey, TElement> : IGrouping<TKey, TElement>
{
private readonly IGrouping<TKey, TElement> _group;
public Grouping(IGrouping<TKey, TElement> group)
{
this._group = group;
}
public TKey Key { get { return _group.Key; } }
public IEnumerator<TElement> GetEnumerator()
{
return _group.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return _group.GetEnumerator();
}
}
public class Sections
{
public IEnumerable<Organisation> Organisations { get; set; }
}
そして、それを使用する次のコード (organisationRepository は IEnumerable を返します):
organisationRepository = new OrganisationRepository();
var tempOrganisations = await organisationRepository.GetAll();
var groupedOrganisations = from currentOrg in tempOrganisations
group currentOrg by currentOrg.name into grouped
select new Grouping<string, Organisation>(grouped);
sections.Organisations = groupedOrganisations;
Organisations = null;
sections.Organisations はあるIEnumerable<Organisation>
ので、次のエラーが発生します。
Error 1 Cannot implicitly convert type 'System.Collections.Generic.IEnumerable<*.ViewModel.Grouping<string,*.Models.*.Models.Entities.Organisation>>' to 'System.Collections.Generic.IEnumerable<*.Models.*.Models.Entities.Organisation>'. An explicit conversion exists (are you missing a cast?) C:\Users\James\Documents\Visual Studio 2012\Projects\*\*\ViewModel\DashboardViewModel.cs 65 38 *
グループ化をIEnumerableに変換する方法についてのアイデア
ソース:
http://dotnet.dzone.com/articles/using-longlistselector-control
より良い情報源:(見つけたので試してみます)
http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj244365(v=vs.105).aspx
感謝します: https://www.youtube.com/watch?v=zlfNsw_JM6U
編集://
私は今家にいて、さまざまなことをたくさん試しましたが、IEnumerableへの変換にはまだ問題があります
+ $exception {System.InvalidCastException: Unable to cast object of type 'System.Collections.Generic.List`1[*.ViewModel.AlphaKeyGroup`1[*.Models.*.Models.Entities.Organisation]]' to type 'System.Collections.Generic.IEnumerable`1[*.Models.*.Models.Entities.Organisation]'.
at *.ViewModel.DashboardViewModel.<LoadOrganisationSection>d__2.MoveNext()} System.Exception {System.InvalidCastException}
これが私が現在行っていることです:
var tempOrganisations = await organisationRepository.GetAll();
List<AlphaKeyGroup<Organisation>> groupedOrganisations = AlphaKeyGroup<Organisation>.CreateGroups(tempOrganisations,
System.Threading.Thread.CurrentThread.CurrentUICulture,
(Organisation o) => { return o.name; }, true);
sections.Organisations = (IEnumerable<Organisation>)groupedOrganisations;
Microsoft 独自の AlphaKeyGroup クラスを使用