Tôi đang cố gắng lọc Danh sách chuỗi dựa trên số lượng từ trong mỗi chuỗi. Tôi giả định rằng bạn sẽ cắt bất kỳ khoảng trắng nào ở cuối của chuỗi, và sau đó đếm số lượng dấu cách còn lại trong chuỗi, để WordCount = NumberOfSpaces + 1. Đó có phải là cách hiệu quả nhất để làm điều này không? Tôi biết rằng để lọc dựa trên nhân vật đếm sau đây là làm việc tốt ... chỉ không thể tìm ra cách để viết nó ngắn gọn bằng cách sử dụng C#/LINQ.Lọc chuỗi dựa trên số lượng từ
if (checkBox_MinMaxChars.Checked)
{
int minChar = int.Parse(numeric_MinChars.Text);
int maxChar = int.Parse(numeric_MaxChars.Text);
myList = myList.Where(x =>
x.Length >= minChar &&
x.Length <= maxChar).ToList();
}
Bất kỳ ý tưởng nào để đếm từ?
UPDATE: Đây Làm việc như một nét duyên dáng ... Cảm ơn Mathew:
int minWords = int.Parse(numeric_MinWords.Text);
int maxWords = int.Parse(numeric_MaxWords.Text);
sortBox1 = sortBox1.Where(x => x.Trim().Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).Count() >= minWords &&
x.Trim().Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).Count() <= maxWords).ToList();
Cảm ơn Mathew ... Sau đây đã hoạt động như một sự quyến rũ! – Jeagr
int minWords = int.Parse (numeric_MinWords.Text); int maxWords = int.Parse (numeric_MaxWords.Text); sortBox1 = sortBox1.Where (x => x.Trim(). Split (new char [] {''}, StringSplitOptions.RemoveEmptyEntries) .Count()> = minWords && x.Trim(). Split (new char [] {''}, StringSplitOptions.RemoveEmptyEntries) .Count() <= maxWords) .ToList(); – Jeagr
Phương pháp này hiệu quả hơn việc sử dụng truy vấn LINQ? – Jeagr