问题描述
publicclassSiWoData{[DataMember(Name="Success")]publicstringSuccess{get;set;}[DataMember(Name="Msg")]publicstringMsg{get;set;}[DataMember(Name="OrderId")]publicstringOrderId{get;set;}[DataMember(Name="Name")]publicstringName{get;set;}[DataMember(Name="Plate")]publicstringPlate{get;set;}[DataMember(Name="InTime")]publicstringInTime{get;set;}[DataMember(Name="OutTime")]publicstringOutTime{get;set;}[DataMember(Name="UserType")]publicstringUserType{get;set;}[DataMember(Name="ParkingSite")]publicstringParkingSite{get;set;}[DataMember(Name="ParkingTime")]publicstringParkingTime{get;set;}[DataMember(Name="ParkingFee")]publicstringParkingFee{get;set;}[DataMember(Name="ParkingActFee")]publicstringParkingActFee{get;set;}privateSortedDictionary<string,object>SiWovalues=newSortedDictionary<string,object>();publicvoidSiWoSetValue(stringkey,objectvalue){SiWovalues[key]=value;}publicobjectSiWoGetValue(stringkey){objecto=null;SiWovalues.TryGetValue(key,outo);returno;}publicSortedDictionary<string,object>SiWoFromXml(stringserverUrl_g,stringData){DataContractJsonSerializerserializer=newDataContractJsonSerializer(typeof(List<SiWoData>));stringresponse_g=Service.HttpGetConnectToServer(serverUrl_g,Data);//stringstr=File.ReadAllText("a.txt");//假设上面的数据存在a.txt里,从其他地方来的也行,赋值给str就行response_g="["+response_g+"]";using(MemoryStreamms=newMemoryStream(Encoding.UTF8.GetBytes(response_g))){List<SiWoData>datas=(List<SiWoData>)serializer.ReadObject(ms);foreach(SiWoDatadataindatas){//Console.WriteLine(data.From);}}}returnSiWovalues;}}
解决方案
解决方案二:
1、方法SiWoFromXml中定义一个SortedDictionary<string,object>类型变量result,returnresult不要return全局变量2、在foreach里直接result.Add(data.***,data)就行啊3、最好SortedDictionary<string,object>都改成SortedDictionary<string,SiWoData>
解决方案三:
你这个问题应该是如何解析字符串成数据集合吧?如果你的字符串是json或者xml格式,那么可以直接反序列化为对象集合,如果是csv格式的话,也可以通过CSVHelper直接反序列化成集合,如果还有其它格式,那就要自己写代码解析了