将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服务器监视器

将IEnumerable与IsolatedStorage中的Data进行比较

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();
相关文章: