Tôi có 4 hộp kiểm này, cấu thành chuỗi biến saljes, kopes, bytes, erbjudes. Khi họ được kiểm tra, họ nhận được giá trị "on".Chứa(), cách đảo ngược bằng lambda
Từ đây tôi đặt cùng một biến chuỗi (p) chứa tất cả các số tôi muốn đưa vào câu lệnh LINQ. Giả sử nếu tất cả các hộp kiểm được chọn, tôi sẽ nhận được một chuỗi là "1234" và nếu chỉ hộp kiểm 2 và 4 được chọn, nó sẽ dẫn đến "24".
Trong cơ sở dữ liệu của tôi, tôi có một trường được gọi là "Loại" có kiểu int. Tôi muốn nói cho cơ sở dữ liệu bao gồm tất cả các hàng có giá trị "Loại" có thể được tìm thấy trong chuỗi p.
Something như thế này (tất nhiên mã của tôi không hoạt động, do đó tôi cần các anh):
var searchResult = from s in db.Ads select s;
string p = "1";
if (saljes != "on")
p = p.Replace("1", "");
if (kopes == "on")
p += "2";
if (bytes == "on")
p += "3";
if (erbjudes == "on")
p += "4";
searchResult = searchResult.Where(s => p.Contains(s => s.Type.ToString());
Những gì tôi kinda cần làm là một đảo ngược Chứa(), nhưng làm thế nào?
Bạn không thể sử dụng 'IEnumerable p'? Bạn có thể luôn luôn 'String.Join' nếu bạn cần nó kết hợp, nhưng sẽ cho phép bạn kiểm soát nhiều hơn liên quan đến việc nhận giá trị riêng lẻ. Tùy chọn khác là sử dụng bit: 'Int32 p;' và kiểm tra '(p & 1)', '(p & 4)', v.v. –
Vì vậy, nếu chuỗi của bạn là '" 234 "' một giá trị '24' nên được tìm thấy trong db của bạn? –
Câu hỏi của bạn có một chút không rõ ràng đối với tôi - sẽ hữu ích khi xem một vài ví dụ về những gì bạn muốn xảy ra với các giá trị "Loại" khác nhau. –