値。 LanguageInfoは、LanguageNameとLanguageIdのオブジェクトをさらに含むオブジェクトです。 LanguageNameとLanguageIdはオブジェクトでもあり、(最後に)文字列値を含みます。LINQ GROUPBYとそのプロパティのすべては、私は、オブジェクト(LanguageInfo)を含むオブジェクト(FilesInfo)のリストを持っている
私はグループに言語別のファイルのリストが欲しいです。 この(私は魔法を比較値/参照によるの問題を想定)は動作しません:
var languageGroupings = data.FilesList.GroupBy(ufi => ufi.LanguageInfo);
(これは私は基本的に達成しようとしているものですが)
これが行われます。
var languageGroupings = data.FilesList.GroupBy(ufi => ufi.LanguageInfo.LanguageName.Value);
さて、問題は、私はLanguageInfoがLANGUAGENAMEが含まれているかどうかを知っている、または言語コード(または他の同様の特性の一つ、ClientLanguageName、ClientLanguageCode)していないということです - グループに私は基本的にしたい理由ですのすべてに基づいてファイルプロパティ値LanguageInfoにネストされています。
どうすればよいですか?
public class UniversalLanguageInfo
{
public int UniversalLanguageInfoId { get; set; }
public UniversalDataElement LanguageCode { get; set; }
public UniversalDataElement LanguageId { get; set; }
public UniversalDataElement LanguageName { get; set; }
public UniversalDataElement ClientLanguageCode { get; set; }
public UniversalDataElement ClientLanguageName { get; set; }
}
public class UniversalDataElement
{
public string Value { get; set; }
public DataFormats DataSource { get; set; }
public string OriginalName { get; set; }
public bool IsExcluded { get; set; }
}
public class UniversalFileInfo
{
public virtual UniversalDataFormat UniversalDataFormat { get; set; }
public UniversalLanguageInfo LanguageInfo { get; set; }
public UniversalDataElement FileName { get; set; }
public UniversalDataElement Id { get; set; }
public UniversalWordcount Wordcount { get; set; }
}
私は混乱しています。*正確に*グループ化したいのですか?私は誤って読んでいるかもしれませんが、あなたが求めているのは非効率的です。もし 'LanguageInfo'の下にあるプロパティがnullまたは空であれば、それを別のプロパティでグループ化したいでしょうか?それは非常に混乱していて、Group Byが意図しているのと逆です。 –
@BviLLe_Kid - LanguageInfoオブジェクト全体でグループ化したい - リスト内の2つのファイルが同じLanguageInfoを持っている場合はグループ化する必要があります:) – Bartosz
言語情報それは自分のクラスですか? –