2017-01-17 1 views
0

C#에서 일종의 쿼리로 조합 된 Linq 쿼리를 실행할 수 있습니까?C# 및 Linq 조합 Linq 쿼리

private queueCollection; 

private void testA(parameterA) 
{ 
    if(parameterA != null) 
    { 
     queueCollection.Add(someCollection.Where(a => a.Name = parameterA)) 
    } 
    else 
    { 
     queueCollection.Add(someCollection); 
    } 
} 

private void testB(parameterB) 
{ 
    if(parameterB != null) 
    { 
     queueCollection.Add(someCollection.Where(b => b.Name = parameterB)) 
    } 
    else 
    { 
     queueCollection.Add(someCollection); 
    } 
} 

private void testC(parameterC) 
{ 
    if(parameterC != null) 
    { 
     queueCollection.Add(someCollection.Where(c => c.Name = parameterC)) 
    } 
    else 
    { 
     queueCollection.Add(someCollection); 
    } 
} 

public void linqQueue() 
{ 
    start queueCollection; 
} 

그래서 내가 한 번에 서로 다른 조합을 조회 할 수 있습니다 별도로 모든 조합을 코딩 할 필요가 없습니다

예를 들어 나는 3 가지 방법이있어?

컬렉션에 정렬 필터를 만들면 매개 변수 A를 얻으면 컬렉션에서 A 결과를 얻을 수 있습니다. 내가 B를 추가하면 A와 B가 필요하고 A가 있으면 B 만 등이됩니다.

+7

당신이이 질문을 바꿔 수주십시오? 그것은 나에게 이해가되지 않는다. – sdgfsdh

+1

세 가지 방법 모두 동일합니다. 메서드, 매개 변수 및 람다 인수에 다른 이름을 사용하기 만합니다. – juharr

답변

1

질문을 올바르게 이해 했으므로 대답은 예입니다. Linq 쿼리에서 조건부를 사용할 수 있습니다.

0
private void test(parameterA,parameterB,parameterC) 
{ 
    queueCollection.Add(someCollection.Where(a => (parameterA != null && a.Name = parameterA) && (parameterB != null && a.Name = parameterB) && (parameterC != null && a.Name = parameterC))); 
} 

또는 당신이 필요 OR 연산자

private void test(parameterA,parameterB,parameterC) 
    { 
     queueCollection.Add(someCollection.Where(a => (parameterA != null && a.Name = parameterA) || (parameterB != null && a.Name = parameterB) || (parameterC != null && a.Name = parameterC))); 
    }