如果需要索引使用,如何编写LINQ查询?

时间:2016-11-07 03:57:12

标签: c# linq

我有一种方法可以获取有关URL源是否支持Accept-Ranges的信息。

方法是:

bool getAcceptRangeHeaderValue()
{
    for (int i = 0; i < resp.Headers.AllKeys.Count; i++)
    {
        if (resp.Headers.AllKeys[i].Contains("Range"))
            return resp.Headers[i].Contains("byte");
    }
    return false;
}

我想在LINQ中编写方法更短。但由于索引的使用,我无法做到这一点。如何在LINQ中编写它?

1 个答案:

答案 0 :(得分:3)

它不是更短,但如果你真的想使用LINQ,你可以写:

return a.Headers.AllKeys
    .Select((v, ind) =>
    new {
        HeaderName = v,
        HeaderValue = a.Headers[ind],
    })
    .Any(g => g.HeaderName.Contains("Range") && g.HeaderValue.Contains("byte"))