为什么我的LINQ查询总是返回0?

时间:2017-02-07 13:46:24

标签: c# linq

我正面临一个奇怪的问题,我没有用c#编写太多程序并且最近刚开始,所以如果这个问题实际上只是一个初学者的错误,我会事先道歉。

int i = 0;
var index = from x in (
                from v in Category.Items 
                select new { Key = i++, Value = v }) 
            where ((MenuCategory) x.Value).id == menuItems[items.SelectedIndex].category 
            select x.Key;

我正在尝试获取Category.Items[]中特定对象的索引(其中字段ID是特定值,menuItems[items.SelectedIndex].category

1 个答案:

答案 0 :(得分:5)

LINQ查询不应该导致这样的副作用。您可以使用方法语法和Select

的重载来获得所需内容
var selectedCatId = menuItems[items.SelectedIndex].category;
var indexes = Category.Items
    .Select((c, index) => new { Key = index, Value = c })
    .Where(x => ((MenuCategory)x.Value).id == selectedCatId)
    .Select(x => x.Key);