簡體   English   中英

用C#構建圖表系列以獲取角度高圖

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM