0

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 と returnStr を比較したい。また、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 サーバー モニター

4

2 に答える 2

0

Except別のコレクションに含まれていないコレクションの要素を見つけるために使用されます。returtStrはコレクションではなく文字列であるため、おそらく機能しません。

あなたがやろうとしていることは次のとおりだと思います:

var compareData = data1.Where(s => !keysCollect.Contains(s.name));

または:

var compareData = data1.Select(s => s.name).Except(keysCollect);
于 2013-06-25T13:54:11.017 に答える
0
var  data1 = (from query in document.Descendants("Services")
select new Ser { name = Convert.ToString(query.Element("Name") )
}).ToList();
于 2013-06-25T13:34:02.487 に答える