将IEnumerable与IsolatedStorage中的Data进行比较
本文关键字:比较 Data 中的 IEnumerable IsolatedStorage | 更新日期: 2023-09-27 18:19:53
如何将IEnumerable
中的数据与IsolatedStorage
中的数据进行比较。这是我的代码:
var data1 = from query in document.Descendants("Services")
select new Ser
{
name = query.Element("Name") != null
? query.Element("Name").Value
: string.Empty,
};
ReportList.ItemsSource = data1;
// ...
private void MenuItem_Click(object sender, RoutedEventArgs e)
{
try
{
string IsoKey = (((sender as MenuItem).DataContext) as Ser).name;
_isoSettings.Add(IsoKey, IsoKey);
_isoSettings.Save();
}
catch (ArgumentException)
{
MessageBox.Show("Эта служба уже в исключениях");
}
}
XAML:
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left" VerticalAlignment="Top">
<StackPanel>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem Header="Ignore" Click="MenuItem_Click" />
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
<TextBlock Text="{Binding name}" Foreground="Coral" />
和:
foreach (string keyCollect in keysCollect)
{
returtStr += keyCollect;
}
我想将数据1与returtStr进行比较。并且不要在ListBox中显示相等的数据。类似这样的东西:
var comparedata = data1.Except(returtStr);
但我有一个错误:
错误2"System.Collections.Generic.IEnumerable"不包含"Except"和最佳扩展名的定义方法过载'System.Linq.Queryable.Except(System.Linq.IQueryyable,System.Collections.Generic.IEnumerable)"具有一些无效参数C:''Users''gromov''SkyDrive ''服务器监视器''服务器Monitor''MainPage.xaml.cs 143 29服务器监视器
和:
错误1实例参数:无法从转换"System.Collections.Generic.IEnumerable"到"System.Linq.IQUERABLED"C:''Users''gromov''SkyDrive ''服务器Monitor''Server Monitor''MainPage.xaml.cs 143 29服务器监视器
Except
用于查找一个集合中不包含的元素。由于returtStr
是一个字符串而不是集合,因此它不可能工作。
我想你想做的是:
var compareData = data1.Where(s => !keysCollect.Contains(s.name));
或者:
var compareData = data1.Select(s => s.name).Except(keysCollect);
var data1 = (from query in document.Descendants("Services")
select new Ser { name = Convert.ToString(query.Element("Name") )
}).ToList();