2015-02-03 2 views
0

어떻게 LINQ를 사용하여 쿼리 조건과 일치하는 마지막 요소가 배열을 선택할 수 있습니까?C# LINQ + 조건을 통해 배열에서 나열

예를 들어,이 작동하지 않았다 : 내가 제대로 선택 사용하지 않을 가능성이 오전부터

public class Node{ 
    public var nodeVar; 

    public Node(var arg){  //constructor of node 
     this.nodeVar = arg; 
    } 
} //end of class 


Node[][] path = new Node[3][]; //a jagged array from which to select the required arrays 
path[0] = new Node[]{ new Node("A"), new Node("B"), new Node("C") }; 
path[1] = new Node[]{ new Node("D"), new Node("E"), new Node("W") }; 
path[2] = new Node[]{ new Node("G"), new Node("W") }; 

//trying to initialize a list of Node arrays using LINQ: 
List<Node[]> thirdArray = path.Select(o => (o.Last().nodeVar == "W") as List<Node[]>).ToList() 

thirdArray가 null로 나옵니다. 가 나는 또한 오류가 점점 오전 : (두 번째/두 번째 배열에서부터

CS 0039: Cannot convert type 'bool' to System.Collections.Generic.List<Node[]> via a built-in conversion

내가 경로에서 두 번째와 세 번째 배열을 선택하고 그들로부터 목록을 만들고 싶어 것을, 마지막 요소의 변수는 당신이 필요로하는 W의 값)

+0

? 네가 만든 수업? 아니면 그것은'public string nodeVar'와'string arg'라고 생각합니까? –

+0

@ GrantWinney, 클래스입니다.하지만이 경우에는 무언가를 제공 할 수 있도록 문자열을 사용했습니다. –

답변

1

이있는 Where :

이러한 맥락에서`var`은 무엇입니까
var thirdArray = path.Where(o => o.Last().nodeVar=="W" ).ToList(); 
+0

감사합니다. 문제가 있습니다. –