根据你提供的代码,似乎有一些语法错误。我猜测你想要筛选出 `server_list` 中 `open_time` 值最大的那个元素,并且这个元素中 `status` 字段的值不为空字符串。
以下是修复后的代码:
```
var json = JsonConvert.DeserializeObject(json2);
List open = json["message"]["server_list"].Values()
.Where(x => !string.IsNullOrEmpty(x["status"].Value()) && x["open_time"] != null)
.OrderByDescending(p => p["open_time"].Value())
.ToList();
```
这里使用了 `Where()` 方法来筛选出符合条件的元素,即 `status` 字段的值不为空字符串并且 `open_time` 字段存在。然后使用 `OrderByDescending()` 方法将结果按照 `open_time` 字段的值降序排序,最后使用 `ToList()` 方法将结果转换为 `List` 类型的对象。
需要注意的是,由于 `open_time` 字段的值可能为 `null`,所以在访问它之前需要先进行判断,否则会抛出空引用异常。