저는 linq을 처음 사용합니다. 다음 표에서 해결책을 찾고 있습니다. 는 여기에 두 개의 새 열 Credit
및 Debit
을 만들고 TransType
조건에 따라 데이터를 표시 할 할 조건으로 TransType
를 사용하여 내 테이블 구조 LINQ에서 조건을 사용하여 선택 결과를 재정렬하는 방법
입니다.
2 개의 스크린 샷에 따라 결과를 얻으려면 LINQ select 쿼리를 제안 해주십시오. 감사합니다.
저는 linq을 처음 사용합니다. 다음 표에서 해결책을 찾고 있습니다. 는 여기에 두 개의 새 열 Credit
및 Debit
을 만들고 TransType
조건에 따라 데이터를 표시 할 할 조건으로 TransType
를 사용하여 내 테이블 구조 LINQ에서 조건을 사용하여 선택 결과를 재정렬하는 방법
입니다.
2 개의 스크린 샷에 따라 결과를 얻으려면 LINQ select 쿼리를 제안 해주십시오. 감사합니다.
감사합니다.
from o in erp.CompAccTransactions
where o.CompanyId == cid
select new
{
o.TransId,
o.TransDate,
o.TransType,
o.TransDesc,
o.PaymentRef,
Credit = o.TransType == "Credit" ? o.Amount : (o.TransType == "Debit" ? (decimal?)null : (decimal?)null),
Debit = o.TransType == "Debit" ? o.Amount : (o.TransType == "Credit" ? (decimal?)null : (decimal?)null),
o.ClearBalance
});
두 개의 추가 열을 얻으려면 사용자 지정 클래스를 직접 만들거나 즉석에서 익명 클래스를 생성 할 수 있습니다 (데이터 유형이 dynamic
인 경우 언제든지 전달할 수 있음). 이 코드는 원칙을 보여줍니다. 이 경우, 나는 익명 클래스를 사용, 그래서 나는 원래 개체의 모든 필드를 반복 플러스 두 개의 여분의 열을 추가 할 수 있습니다 제안
static void Main(string[] args)
{
var list = new List<MyObj>
{
new MyObj { TransType = "Credit", PaymentMethod = 1, Amount = 1000 },
new MyObj { TransType = "Debit", PaymentMethod = 2, Amount = 2000 },
new MyObj { TransType = "Debit", PaymentMethod = 1, Amount = 4000 },
new MyObj { TransType = "Credit", PaymentMethod = 3, Amount = 3000 }
};
var filtered = from o in list
where o.TransType == "Credit"
select new
{
o.TransType,
o.PaymentMethod,
o.Amount,
Credit = "<VALUE>",
Debit = "<VALUE>"
};
}
class MyObj
{
public string TransType { get; set; }
public int PaymentMethod { get; set; }
public int Amount { get; set; }
}
시도'Where' 방법 :'var에 크레딧 = transactions.Where (t => t.TransType == "신용")하며 접근하는 방법에는 여러 가지가 있기 때문에' –
귀하의 질문은 너무 광범위 문제 및 사용 방법은 제공하지 않은 정보 (좋은 [mcve] 포함)에 따라 다릅니다. 그러나'Select()'를 사용하여'CreditType'과'Debit' 속성을 포함하는 새로운 요소 유형으로 투영하고,'TransType' 열에 따라 값을 설정할 수 있습니다. 그래서 당신이 그것을 시도하는 것이 좋습니다. (나는 많은 회계 상황에서'TransType' 칼럼이 없다는 것을 주목할 것입니다 ... 신용/차변은 단순히 값의 부호로 표시됩니다) –