我有一個包含對象(LanguageInfo)的對象列表(FilesInfo)。 LanguageInfo是一個包含LanguageName和LanguageId的更多對象的對象。 LanguageName和LanguageId也是一個對象,它(最後)包含一個字符串值。LInq GroupBy按對象及其所有屬性值
我想按語言對文件列表進行分組。 這不起作用(我想通過值/基準進行比較神奇的一件事):
var languageGroupings = data.FilesList.GroupBy(ufi => ufi.LanguageInfo);
(雖然這是我主要想實現)
這並不:
var languageGroupings = data.FilesList.GroupBy(ufi => ufi.LanguageInfo.LanguageName.Value);
現在,問題是我不知道LanguageInfo是否將包含LanguageName或LanguageCode(或其他類似屬性之一,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對象進行分組 - 如果列表中的兩個文件具有相同的LanguageInfo,則應將它們分組:) – Bartosz
so language info是自己的班級? –