如何将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;
}
我想将data1与returtStr进行比较。并且不要在ListBox中显示相同的数据。 像这样:
var comparedata = data1.Except(returtStr);
但我有一个错误:
错误2'System.Collections.Generic.IEnumerable' 不包含'Except'的定义和最佳扩展名 方法过载 “System.Linq.Queryable.Except(System.Linq.IQueryable, System.Collections.Generic.IEnumerable)'有一些无效 参数C:\ Users \ gromov \ SkyDrive \ Server Monitor \ Server Monitor \ MainPage.xaml.cs 143 29服务器监视器
和
错误1实例参数:无法转换 'System.Collections.Generic.IEnumerable'到 'System.Linq.IQueryable'C:\ Users \ gromov \ SkyDrive \ Server Monitor \ Server Monitor \ MainPage.xaml.cs 143 29服务器监视器
答案 0 :(得分:0)
var data1 = (from query in document.Descendants("Services")
select new Ser { name = Convert.ToString(query.Element("Name") )
}).ToList();
答案 1 :(得分:0)
Except
用于查找未包含在另一个集合中的集合元素。由于returtStr
是字符串而不是集合,因此无法正常工作。
我认为你要做的是:
var compareData = data1.Where(s => !keysCollect.Contains(s.name));
或者:
var compareData = data1.Select(s => s.name).Except(keysCollect);