有没有一种方法让吸气剂根据字符串列表返回特定的字典条目<string,someclass =“”>?

时间:2019-01-10 14:03:34

标签: c# list linq dictionary

在我的WPF应用程序中,我试图根据用户可以编辑的键列表仅检索特定的词典条目。

我正在尝试通过使用户可以修改的List<string> ListOfKeys,一个Dictionary<string, AnObject> AllObjects(包含一堆具有不同变量的AnObject)和一个Dictionary<string, AnObject> SomeObjects(具有一个get{ }包含一个查询,该查询仅返回AllObjects中的键与AllObjects中的条目相匹配的ListOfKey中的条目。

我要在查询中添加哪些内容才能使其正常工作? 另外,对于我应该采用的其他方法,有何建议?

XAML:

<ItemsControl ItemsSource="{Binding SomeObjects.Values}" Grid.Row="1">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding someText}"/>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

C#

public class AClass
{
    string someText;
    int someNumber
    [...] etc.
}

public Dictionary<string, AClass> AllObjects;

public List<string> ListOfKeys;

public Dictionary<string, AClass> SomeObjects
{
    get
    {
        return AllObjects.Where(a key in AllObjects matches an entry in the ListOfKeys);
    }
}

1 个答案:

答案 0 :(得分:0)

返回列表而不是字典:

List<AClass> someObjects
get
{
    return AllObjects.Where(x => ListOfKeys.Contains(x.Key)).Select(x => x.Value).toList();
}