2010-07-23 36 views
5

Làm thế nào để tìm xem chuỗi chuỗi có chứa một phần nào đó của chuỗi không? Tôi có mảng như thế nàyC# Mảng chứa một phần

String[] stringArray = new [] { "[email protected]", "[email protected]", "@gmail.com" }; 
string str = "[email protected]" 

if (stringArray.Any(x => x.Contains(str))) 
{ 
    //this if condition is never true 
} 

tôi muốn chạy nếu khối này khi str chứa một chuỗi thats hoàn toàn hoặc một phần của bất kỳ mảng của Item.

Trả lời

15

Giả sử bạn đã có LINQ có sẵn:

bool partialMatch = stringArray.Any(x => str.Contains(x)); 

Ngay cả khi không LINQ thật dễ dàng:

bool partialMatch = Array.Exists(stringArray, x => str.Contains(x)); 

hoặc sử dụng C# 2:

bool partialMatch = Array.Exists(stringArray, 
     delegate(string x) { return str.Contains(x)); }); 

Nếu bạn đang sử dụng C# 1 sau đó bạn có thể phải làm điều đó một cách khó khăn :)

+0

xem mã cập nhật của tôi bằng đoạn mã của bạn nhưng mã không hoạt động. – coure2011

+0

Mã của Jon hoạt động tốt ở đây. Bạn đang thiếu một cái gì đó từ ví dụ của bạn. –

+0

Vui lòng kiểm tra mã cập nhật của tôi ngay bây giờ. – coure2011

0

Nếu bạn đang tìm kiếm nếu một chuỗi cụ thể trong mảng của bạn chỉ chứa "@ gmail.com" thay vì "[email protected]" thì bạn có một vài tùy chọn.

Ở phía đầu vào, có nhiều câu hỏi ở đây trên SO sẽ chỉ cho bạn theo hướng bạn cần xác thực rằng đầu vào của bạn là địa chỉ email hợp lệ.

Nếu bạn chỉ có thể kiểm tra trở lại vào cuối, tôi muốn làm một cái gì đó như:

emailStr = "@gmail.com"; 
if(str.Contains(emailStr) && str.length == emailStr.length) 
{ 
    //your processing here 
} 

Bạn cũng có thể sử dụng Regex phù hợp, nhưng tôi không gần quen thuộc đủ với điều đó để cho bạn biết những gì mô hình bạn cần.

Nếu bạn đang tìm kiếm bất kỳ thứ gì có chứa "@ gmail.com", câu trả lời của Jon là cược tốt nhất của bạn.

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