2013-08-14 63 views
12

Tôi có danh sách kết quả Danh sách chứa Danh sách bên trong nó. Tôi có một danh sách khác có chứa Danh sách. Tôi muốn lọc bằng truy vấn LINQ từ dữ liệu nơi nó sẽ trả về tất cả dữ liệu chứa id kỹ năng từ danh sách thứ hai.LINQ truy vấn để lọc id bên trong danh sách danh sách C#

var list = this._viewModel.Data.Select(T => T.SkillsList); 
var filtered = item.Skills.Contains(list.Where(t=>t.ToString()).ToList(); 

từ danh sách đầu tiên chứa Danh sách số thập phân bên trong danh sách kỹ năng; item.Skills chứa danh sách các trường là skillid và code. mục là một đối tượng khác có chứa danh sách kỹ năng.

+0

Bạn muốn gì? Gì? – phillip

+0

Tôi muốn lọc bằng cách sử dụng truy vấn LINQ từ dữ liệu mà nó sẽ trả về tất cả dữ liệu chứa id kỹ năng từ danh sách thứ hai. – Sajeetharan

+0

OK thật dễ dàng ... 1 giây – phillip

Trả lời

18

nếu skillId là biến và giả sử rằng SkillsList chứa thuộc tính được gọi là Id. Sau đó, sau đây sẽ làm việc trong việc đưa bạn bất kỳ dữ liệu nào có skillId được chỉ định.

var list = this._viewModel.Data.Where(t=>t.SkillsList.Any(s=>s.Id == skillId)); 

Nếu danh sách kỹ năng chỉ là một dãy số nguyên thì thao tác sau sẽ hoạt động.

var list = this._viewModel.Data.Where(t=>t.SkillsList.Any(s=> s == skillId)); 

Bây giờ, nếu bạn đang kiểm tra danh sách những điều sau đây sẽ hiệu quả.

var list = this._viewModel.Data.Where(t=>t.SkillsList.Any(s=> skillsList.contains(s)); 
+0

Tôi không nghĩ đó là ... Bất kỳ? Tôi có thể sai nhưng bạn có thể hiển thị dữ liệu cùng với truy vấn không? – phillip

+0

Thực ra nó có vẻ phù hợp với tôi ... Xin lỗi – phillip

+0

Điều này không hiệu quả đối với tôi –

Các vấn đề liên quan