我有以下列舉和類:
public enum SymbolTypeEnum
{
[Description("Forex")]
forex = 0,
[Description("Metals")]
metals = 1,
[Description("Commodities")]
commodities = 2,
[Description("Indices")]
indices = 3,
[Description("Cryptocurrency")]
cryptocurrency = 4,
[Description("Other")]
other = 5
}
public enum SymbolClassificationEnum
{
[Description("None")]
none = 0,
[Description("Major")]
major = 1,
[Description("Minor")]
minor = 2,
[Description("Exotic")]
exotic = 3
}
public class SymbolSettingsModel
{
[PrimaryKeyAttribute, Unique]
public string symbolName { get; set; }
public SymbolTypeEnum symbolType { get; set; }
public SymbolClassificationEnum symbolClassification { get; set; }
}
我有一個List<SymbolSettingsModel> symbolSettings;
我的目標是生成一個Dictionary<SymbolTypeEnum, List<SymbolDescr>> typeSymbolsSettingsData;
SymbolDescr 在哪里:
class SymbolDescr
{
public string symbol { get; set; }
public int classification { get; set; }
}
想法是按 symbolType 對它們進行分組,并將其用作字典的 Key,并生成 SymbolDescr 串列。到目前為止,這是我的代碼:
typeSymbolsSettingsData = symbolSettings.GroupBy(p => p.symbolType)
.ToDictionary(p => p.Key, p => p.ToList());
我被困在這一點上,你有什么想法我該怎么做嗎?
uj5u.com熱心網友回復:
您可以使用Select將您的SymbolSettingsModel實體投影到SymbolDescr實體中:
typeSymbolsSettingsData = symbolSettings
.GroupBy(p => p.symbolType)
.ToDictionary(
p => p.Key,
p => p.Select(x => new SymbolDescr
{
symbol = x.symbolName,
classification = (int)x.symbolClassification
})
.ToList());
您還應該嘗試遵守強制使用 PascalCase的.Net 屬性命名約定。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/420766.html
標籤:
