using System.Collections.Generic;
using Newtonsoft.Json.Linq;
public static void Main()
""Key112"": ""value112"",
""Key312"": ""value312"",
""Key321"": ""value321"",
List<string> remainedKeys = new List<string> { "Class 2", "Class 4" };
var result = JObject.Parse(json_string)
.ToObject<Dictionary<string, List<dynamic>>>()
.Where(x => remainedKeys.Contains(x.Key))
.ToDictionary(x => x.Key, x => x.Value);
Console.WriteLine(JsonConvert.SerializeObject(result));