Ion*_*goi 3 c# linq lambda xamarin
我在我的备忘录Xamarin应用程序中添加了一个搜索栏.我使用此事件处理程序在文本更改时获取备忘录列表:
private void SearchBar_OnTextChanged(object sender, TextChangedEventArgs e)
{
MemoList.ItemsSource = GetMemo(e.NewTextValue);
}
Run Code Online (Sandbox Code Playgroud)
处理程序调用GetMemo函数,但是当我在searchText变量中有一个值时,函数返回null,我不知道为什么.
ObservableCollection<Memo> GetMemo(string searchText = null)
{
if (string.IsNullOrWhiteSpace(searchText))
return _memos;
return _memos.Where(c => c.Title.StartsWith(searchText)) as ObservableCollection<Memo>;
}
Run Code Online (Sandbox Code Playgroud)
Lambda表达式或Linq表达式有问题吗?
我不得不说,当我没有传递任何参数时,函数会正确返回.
试试这个:
return new ObservableCollection<Memo>(_memos.Where(c => c.Title.StartsWith(searchText));
Run Code Online (Sandbox Code Playgroud)
您必须围绕来自linq表达式的IEnumerable结果包装ObservableCollection.只需将IEnumerable结果作为ObservableCollection构造函数参数传递.
| 归档时间: |
|
| 查看次数: |
197 次 |
| 最近记录: |