2017-12-04 4 views
3

을 만들어 내 프로그래밍 (SciChart를) 차트에 사용되는 Datatable. 열과 이름의 양을 미리 알 수 없기 때문에이 작업을 수행해야합니다. C#을, 프로그램 나는 모든 컬럼에 대한 <code>XyDataSeries</code>를 만들기 위해 노력하고 xyseries

는 주어진 계열의 x 값은 언제나 0 내지 정수 증분되고 Y 값은 열 값이다.

I는 Datatable에 엑셀 데이터를 임포트하고 열 헤더 다음으로 List의 이름 어디 DictionaryList A와 각 열을 전달하고;

dict = dt.Columns.Cast<DataColumn>().ToDictionary(c => c.ColumnName, c => dt.AsEnumerable().Select(r => r[c]).ToList()); 

내가 어디 Dictionary<string, XyDataSeries<double, double>> 위의 식으로 뭔가를 할 수 있습니까?

나는 모든 컬럼/목록 같은 것을 할 수있는, 내가 열 금액과 자신의 이름을 알지 못했다 가정;

XyDataSeries 수동 생성 및 값을 추가하는리스트를 통해 반복. 그런 다음 차트 시트를 설정합니다. XAML에 정의 된 차트의 데이터 시리즈는 각각 XyDataSeries입니다.

var list = dict["ListName"]; 
XyDataSeries<double, double> xyseries; 
xyseries = new XyDataSeries<double, double>() { SeriesName = "ListName" }; 
foreach (var i in list) 
{ 
    double x = 1; 
    var d = Convert.ToDouble(i); 
    xyseries.Append(x++, d); 
} 
chartseries.DataSeries = xyseries; 

또한 XAML 시리즈를 선언해야합니다.이 문제를 해결할 수 있습니까? 600 회 이상이 작업을 수행하는 데

하지만 이상적인 거리가 멀다하고 나는이에 대한 우아한 해결책 정말 절망적입니다. 내가 어떤 추가 정보를 제공 할 수있는 경우

알려 주시기 바랍니다. 감사합니다

+0

당신은 사전을 반복 할 수 있습니다 :'foreach (var keyValuePair in dict) {var list = keyValuePair.Value; ...}' – ASh

+0

안녕하세요, 저는 사전을 반복 할 수 있다고 생각했습니다. 정말로 알고 싶은 것은 어떻게 Dictionary > '을 만들 수 있습니까? XyDataSeries를 반환 하시겠습니까? 수동으로 설정하지 않아도됩니다. – User9123

답변

1

내가 같은 것을 할 수 있습니까 Dictionary<string, XyDataSeries<double, double>>?

ToDictionary 메서드는 두 번째 인수로 Func<TSource, TElement>을 허용합니다. 따라서 이것을 생성하고 XyDataSeries<double, double>을 채울 수 있습니다. 다음과 같이 :

dict = dt.Columns.Cast<DataColumn>() 
    .ToDictionary(c => c.ColumnName, c => 
    { 
     var dataSeries = new XyDataSeries<double, double>(); 
     double x = 1.0; 
     dataSeries.Append(dt.AsEnumerable().Select(_ => x++), dt.AsEnumerable().Select(r => Convert.ToDouble(r[c]))); 
     return dataSeries; 
    }); 
+0

고마워, 이것을 시도하고 예외를 기본적으로 그것을 암시 적으로 변환 할 수 없습니다 List <> 사전 Dictionary <> ... 데이터 테이블을 클릭 이벤트를 통해 해당 데이터를 가져올 때까지 Null 값을 문제가 여기에 발생합니다 ? – User9123

+0

목록을 사전으로 변환하는 위치는 어디입니까?!? – mm8

+0

오류를 잘못 이해했다고 생각하십시오. '암시 ​​적으로 형식을 변환 할 수 없습니다 'System.Collections.Generic.List >>'to 'System.Collections.Generic.Dictionary > ' – User9123