我有一个包含对象(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是自己的班级? –