에 따라 필드 값을 변경하는 쿼리 내가 가지고있는 follwing을 목적C#을 LINQ 목록
objItem (id,name,qty) - list<items>
objSel(selId) - list<int>
objSel.selId이 objItem의 선택된 항목 ID입니다.
항목을 선택하지 않고 항목 qty를 0으로 변경하고 objItem을 반환하는 LINQ 쿼리를 작성하는 방법.
에 따라 필드 값을 변경하는 쿼리 내가 가지고있는 follwing을 목적C#을 LINQ 목록
objItem (id,name,qty) - list<items>
objSel(selId) - list<int>
objSel.selId이 objItem의 선택된 항목 ID입니다.
항목을 선택하지 않고 항목 qty를 0으로 변경하고 objItem을 반환하는 LINQ 쿼리를 작성하는 방법.
귀하의 의사 코드는 매우 혼란,하지만 난 당신이 뭔가 할 생각 : 더 효율적 들어
List<Item> items = ...;
List<int> selectedIds = ...;
foreach (var item in items.Where(x => !selectedIds.Contains(x.Id)))
{
item.Quantity = 0; // Property name adjusted for readability and convention
}
을 대신 선택한 ID에 대한 HashSet<int>
를 사용합니다.
변경을 수행하는 것은 LINQ 쿼리이 아니며, 쿼리는 변경이 필요한 항목 만 제공한다는 점에 유의하십시오. LINQ를 사용하여 데이터를 변경하는 동안 그렇게하는 것은 좋지 않습니다. 단서는 "검색어"라는 단어에 있습니다. 질문하는 것입니다. 그 질문에 대한 대답으로 당신이하는 일은 다른 문제입니다.
Jon, 필자는 LINQ를 사용하여 필드 값을 필터링하고 변경할 수 있다고 생각했습니다. 이것이 최선의 방법이라면, 이것으로 갈 것입니다. 감사. – Wilz
@Wilz : 당신은 * 할 수 있습니다. 그러나 그것은 그것이 설계된 것이 아닙니다. 기본적으로 LINQ와 싸워야합니다. 이제 기존 객체를 변경하지 않고 기존 객체와 일부 조건을 기반으로 새 객체를 만드는 등 재 설계해야한다면 다른 문제입니다. –
답변을 작성했지만 원하는 답변이 아닌 경우 질문을 자세히 설명해주세요. 이상적으로는 의사 코드가 아닌 실제 코드를 표시하십시오. –
Jon, 필자는 LINQ를 사용하여 필드 값을 필터링하고 변경할 수 있다고 생각했습니다. 이것이 최선의 방법이라면, 이것으로 갈 것입니다. 감사. – Wilz