作为.NET 4.5的(我认为微软已经对框架的版本信息<4.5,而掩盖这些天),您可以使用的内置的解析器一个来自System.Net.Http.Headers:
public IOrderedEnumerable<MediaTypeWithQualityHeaderValue> GetMediaTypes(string headerValue) =>
headerValue?.Split(',')
.Select(MediaTypeWithQualityHeaderValue.Parse)
.OrderByDescending(mt => mt.Quality.GetValueOrDefault(1));
Run Code Online (Sandbox Code Playgroud)
然后,您可以执行以下操作:
var headerValue = "application/json, text/javascript, */*; q=0.01";
var mediaTypes = GetMediaTypes(headerValue);
Run Code Online (Sandbox Code Playgroud)
为您提供所有媒体类型的良好列表,其中首选选项为第一项。这里有一个LINQPad Dump中的mediaTypes从示例结果:
对此提示进行提示,以使我步入正轨。