Probably, your class names don't match.
If I feed your JSON into a class generator (
json2csharp - generate c# classes from json[
^]) I get these:
public class Testinfo
{
public int testid { get; set; }
public string testshortdescription { get; set; }
public string testlongdescription { get; set; }
public int testtypeid { get; set; }
public object testlimitsid { get; set; }
}
public class RootObject
{
public List<Testinfo> testinfo { get; set; }
}
Instead of TestCS.
If I try with those classes, it deserializes fine as a single instance in the list:
string strjson = "{\"testinfo\":" + "[{\"testid\":1,\"testshortdescription\":\"tanktest\",\"testlongdescription\":\"Tank Test \",\"testtypeid\":2,\"testlimitsid\":null}," + "{\"testid\":2,\"testshortdescription\":\"FuelPump1\",\"testlongdescription\":\"Fuel Pump 1\",\"testtypeid\":4,\"testlimitsid\":null}," + "{\"testid\":3,\"testshortdescription\":\"FuelPump2\",\"testlongdescription\":\"Fuel Pump 2\",\"testtypeid\":4,\"testlimitsid\":null}," + "{\"testid\":4,\"testshortdescription\":\"TankAudit\",\"testlongdescription\":\"Tank Chamber Audit\",\"testtypeid\":6,\"testlimitsid\":null}]}";
Console.WriteLine("{0}", strjson);
RootObject x = Newtonsoft.Json.JsonConvert.DeserializeObject<RootObject>(strjson);
Testinfo ti = x.testinfo[0];