[英]Build chart series in c# for angular highcharts
我正在嘗試為箱形圖構建系列,這將在我的角度應用程序中使用它。 但是,該系列需要使用c#構建。 您會注意到,我在類上設置了TSType屬性,將其轉換為打字稿文件。 我不確定類結構應該如何與Typescript結構匹配。 請注意,由於通用功能,我使用了通用。 如果您在我的c#代碼中注意到,則嘗試在EvaResults類的ChartSeries屬性中初始化該系列。 當我收到編譯時間錯誤時,如何初始化數據,名稱和顏色。
我試圖實現的Typescript結構是
this.series = [{
name: 'Captive Options',
color: "#5D63D3",
data: [
{
high: 1381733.354653,
low: 1375002.43018757,
median: 1378397.06388383,
q1: 1377657.3051449,
q3: 1379137.30789384
}]
}, {
name: 'Self Insurance Option',
color: "#FFB81C",
data: [{
high: 31571.3633337259,
low: 25798.8488509699,
median: 28811.9158552374,
q1: 28152.937211967,
q3: 29440.3428303377
}]
}];
C#代碼
[TsType]
public class BoxPlotSeries
{
public string Color { get; set; }
public string Name { get; set; }
public class data
{
public decimal Low { get; set; }
public decimal Q1 { get; set; }
public decimal Median { get; set; }
public decimal Q3 { get; set; }
public decimal High { get; set; }
}
}
[TsType]
public class EvaResults
{
public int[] CapitalViewYear { get; set; }
public decimal[] CapitalViewCapitalNetIncome { get; set; }
public decimal[] CapitalViewSurplusDeployed { get; set; }
public decimal[] CapitalViewGraphData { get; set; }
public decimal[] ParentViewCostOfCapDeployed { get; set; }
public decimal[] ParentViewCostOfRiskArb { get; set; }
public decimal[] ParentViewIncrCost { get; set; }
public decimal[] ParentViewOutcome { get; set; }
public decimal[] ParentViewSurplusDeployed { get; set; }
public decimal[] ParentViewNpvBenefit { get; set; }
public decimal[] ParentViewGraphData { get; set; }
public SeriesGeneric<BoxPlotSeries> ChartSeries
{
get
{
BoxPlotSeries captiveViewSeriesData = null;
if (CapitalViewGraphData != null && CapitalViewGraphData.Length >= 5)
{
captiveViewSeriesData = new BoxPlotSeries();
captiveViewSeriesData.Name = "Captive";
captiveViewSeriesData.Color = "#FFB81C";
captiveViewSeriesData = new BoxPlotSeries
{
Low = CapitalViewGraphData[0],
Q1 = CapitalViewGraphData[1],
Median = CapitalViewGraphData[2],
Q3 = CapitalViewGraphData[3],
High = CapitalViewGraphData[4],
};
}
//ParentView
BoxPlotSeries parentViewSeriesData = null;
if (ParentViewGraphData != null && ParentViewGraphData.Length >= 5)
{
parentViewSeriesData = new BoxPlotSeries();
parentViewSeriesData.Name = "Parent Company";
captiveViewSeriesData.Color = "#C111A0";
parentViewSeriesData = new BoxPlotSeries
{
Low = ParentViewGraphData[0],
Q1 = ParentViewGraphData[1],
Median = ParentViewGraphData[2],
Q3 = ParentViewGraphData[3],
High = ParentViewGraphData[4],
Color = "#C111A0",
Name = "Parent Company" // TODO: Localize
};
}
return new SeriesGeneric<BoxPlotSeries>
{
Data = new List<BoxPlotSeries> { captiveViewSeriesData, parentViewSeriesData }
};
}
}
}
我已經嘗試了以下方法,但是沒有用
public SeriesGeneric<BoxPlotSeries> ChartSeries
{
get
{
BoxPlotSeries captiveViewSeriesData = null;
if (CapitalViewGraphData != null && CapitalViewGraphData.Length >= 5)
{
captiveViewSeriesData = new BoxPlotSeries();
captiveViewSeriesData.color = "#FFB81C";
captiveViewSeriesData.name = "Captive";
captiveViewSeriesData.data = new Data();
captiveViewSeriesData.data.Low = CapitalViewGraphData[0];
captiveViewSeriesData.data.Q1 = CapitalViewGraphData[1];
captiveViewSeriesData.data.Median = CapitalViewGraphData[2];
captiveViewSeriesData.data.Q3 = CapitalViewGraphData[3];
captiveViewSeriesData.data.High = CapitalViewGraphData[4];
}
//ParentView
BoxPlotSeries parentViewSeriesData = null;
if (ParentViewGraphData != null && ParentViewGraphData.Length >= 5)
{
parentViewSeriesData = new BoxPlotSeries();
parentViewSeriesData.color = "#C111A0";
parentViewSeriesData.name = "Parent Company";
parentViewSeriesData.data = new Data();
parentViewSeriesData.data.Low = CapitalViewGraphData[0];
parentViewSeriesData.data.Q1 = CapitalViewGraphData[1];
parentViewSeriesData.data.Median = CapitalViewGraphData[2];
parentViewSeriesData.data.Q3 = CapitalViewGraphData[3];
parentViewSeriesData.data.High = CapitalViewGraphData[4];
}
return new SeriesGeneric<BoxPlotSeries>
{
Data = new List<BoxPlotSeries> { captiveViewSeriesData, parentViewSeriesData }
};
}
根據您的建議,我嘗試了此操作,但由於我沒有返回該對象,所以不理解添加到seriesdata對象的重要性。 如果我返回那個對象,我得到類型錯誤。
public SeriesGeneric<BoxPlotSeries> ChartSeries
{
get
{
List<BoxPlotSeries> seriesData = null;
seriesData = new List<BoxPlotSeries>();
BoxPlotSeries captiveInsSeriesData = new BoxPlotSeries();
if (CaptiveInsGraphData != null)
{
captiveInsSeriesData.color = "#5D63D3";
captiveInsSeriesData.name = "Captive Options";
captiveInsSeriesData.data = new Data();
captiveInsSeriesData.data.Low = CaptiveInsGraphData[0];
captiveInsSeriesData.data.Q1 = CaptiveInsGraphData[1];
captiveInsSeriesData.data.Median = CaptiveInsGraphData[2];
captiveInsSeriesData.data.Q3 = CaptiveInsGraphData[3];
captiveInsSeriesData.data.High = CaptiveInsGraphData[4];
seriesData.Add(captiveInsSeriesData);
}
//CommIns
// BoxPlotSeries commInsSeriesData = null;
BoxPlotSeries commInsSeriesData = new BoxPlotSeries();
if (CommInsGraphData != null)
{
//BoxPlotSeries commInsSeriesData = new BoxPlotSeries();
commInsSeriesData.color = "#C111A0";
commInsSeriesData.name = "Commercial Option";
commInsSeriesData.data = new Data();
commInsSeriesData.data.Low = CommInsGraphData[0];
commInsSeriesData.data.Q1 = CommInsGraphData[1];
commInsSeriesData.data.Median = CommInsGraphData[2];
commInsSeriesData.data.Q3 = CommInsGraphData[3];
commInsSeriesData.data.High = CommInsGraphData[4];
seriesData.Add(commInsSeriesData);
}
//SelfIns
//BoxPlotSeries selfInsSeriesData = null;
BoxPlotSeries selfInsSeriesData = new BoxPlotSeries();
if (SelfInsGraphData != null)
{
//BoxPlotSeries selfInsSeriesData = new BoxPlotSeries();
selfInsSeriesData.color = "#FFB81C";
selfInsSeriesData.name = "Self Insurance Option";
selfInsSeriesData.data = new Data();
selfInsSeriesData.data.Low = CommInsGraphData[0];
selfInsSeriesData.data.Q1 = CommInsGraphData[1];
selfInsSeriesData.data.Median = CommInsGraphData[2];
selfInsSeriesData.data.Q3 = CommInsGraphData[3];
selfInsSeriesData.data.High = CommInsGraphData[4];
seriesData.Add(selfInsSeriesData);
}
return new SeriesGeneric<BoxPlotSeries>
{
Data = new List<BoxPlotSeries> { captiveInsSeriesData, commInsSeriesData, selfInsSeriesData }
};
}
}
您必須添加一個數據類的屬性public Data data { get; set; }
public Data data { get; set; }
public class BoxPlotSeries
{
public string color { get; set; }
public string name { get; set; }
public Data data { get; set; }
public class Data
{
public decimal Low { get; set; }
public decimal Q1 { get; set; }
public decimal Median { get; set; }
public decimal Q3 { get; set; }
public decimal High { get; set; }
}
}
填充BoxPlotSeries
每個實例,並將其添加到List<BoxPlotSeries>
UPDATE實現
//Declaration
captiveViewSeriesData = new List<BoxPlotSeries>();
//Initialize
//here posible for or foreach
BoxPlotSeries obj = new BoxPlotSeries();
obj.color="#FF00FF";
obj.name="Peter";
obj.data = new Data();
obj.data.Low = 0.5;
obj.data.Q1= 0.5;
obj.data.Median= 0.5;
obj.data.Q3 = 0.5;
obj.data.High = 0.5;
captiveViewSeriesData.Add(obj);
// close posible for or foreach
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.