2015-02-04 3 views
0

LINQ to SQL (LINQPad 통해)을 사용하여 MySQL 데이터베이스에서 일부 데이터를 추출합니다.사전을 사용하여 linq 결과 색인

var res = MyTable.First(); 
res.Dump(); 

그리고 저는 255 열을 가지고 있습니다.

i0 | 0.01 
i1 | 0.11 
i2 | 4.01 
... 
i254 | 1.12 

선택 후 255 열의 값을 배열로 변환하고 싶습니다.

for i in 0..254 do 
    array[i] = res["i" + i] 

답변

0

:

var type = res.GetType(); 
type.GetMembers().Where(s => s.Name.StartsWith("i")).Select(s => new { Name = s.Name, Value=s.GetValue(res)}).Dump(); 
0

당신은 속성을 얻을 반사를 사용할 수 있습니다 : (의사 코드)와 같은 루프를 만들기 위해 할 수 있도록 사전으로 res의 값을 반복하는 방법이 있나요.

는 :

나는 그렇게으로 반사와 함께 작동있어 @sloth에 의해 제안
var res = MyTable.First(); 
var type = res.GetType(); 
for(int i=0; i<=254; i++) 
    array[i] = type.GetProperty("i" + i).GetValue(res); 
+0

뭔가가 코드에 문제가 있습니다 확신 해요. – kasperhj

+0

@lejon 예; '1'을'i '로 바꿔야합니다. – sloth

+0

글쎄요, 네, 그렇지만 코드가 컴파일 되나요? – kasperhj