代码附上,我是主要目的是将JsonData对象储存在List集合中,想用Linq查询查出不重复的数据集合,并且还可以查询多个字段相等或者为空时候的集合,但是发现用Linq连重复都查不了,请问是哪里有问题?代码该怎么写?ListJson初次接触。         /// 
        /// 将实体类转换成Json格式
        /// <param name="data">批量新增的范围内的Excel数据</param>
        /// 
        public List<JsonData> ObjectToJsonData(object data, BackgroundWorker bgw = null)
        {
            try
            {
                object[,] newdata = (object[,])data;
                int max = newdata.GetLength(0);                int i = 1;
                List<JsonData> json = new List<JsonData>();
                for (i = 1; i < max; i++)
                {
                    bgw.ReportProgress(i);
                    int k = 1;
                    AddNewValue newvalue = new AddNewValue();
                    for (k = 1; k <= 7; k++)
                    {
                        switch (k)
                        {
                            case 1:
                                newvalue.CampingName = newdata[i, 1] + "";
                                break;
                            case 2:
                                newvalue.UnitName = newdata[i, 2] + "";
                                break;
                            case 3:
                                newvalue.KeyWordsName = newdata[i, 3] + "";
                                break;
                            case 4:
                                newvalue.matchType = newdata[i, 4] + "";
                                break;
                            case 5:
                                newvalue.CurrentPrice = newdata[i, 5] + "";
                                break;
                            case 6:
                                newvalue.UrlLink = newdata[i, 6] + "";
                                break;
                            case 7:
                                newvalue.Status = newdata[i, 7] + "";
                                break;                        }
                    }
                    string json_newvalue = JsonMapper.ToJson(newvalue);
                    json.Add(json_newvalue);
                }
                return json;
            }
            catch (Exception ex)
            {
                AsynLogManager.Trace(ex);
                return null;
            }
           
            
            //输出:{"Name":"www.87cool.com","Age":3,"Birthday":"07/17/2007 00:00:00"}
        }
        /// <summary>
        /// 批量新增数据验证
        /// </summary>
        /// <param name="NewData">新增的数据整合后的对象</param>
        /// <param name="bgw">进程</param>
        /// <returns></returns>
        public bool ValidateMoreNewData(List<JsonData> NewData,BackgroundWorker bgw=null)
        {
            //JToken take=NewData.SelectToken(
            //
            //NewData.SelectToken("AddNewValue").Select(p => p["CampingName"]).Distinct();            List<JsonData> dt = (from t in NewData select t).Distinct().ToList();//过滤不了重复的
            //ReadJson(dt);
            return true;
        }

解决方案 »

  1.   

    JsonData的定义是什么,它不是微软自带的类,我不知道是如何定义的呀,对于一个自定义的类,比较是否相同你要比较其所有属性,而不是比较引用地址。
      

  2.   


    IDictionary来接  操作方便很多
      

  3.   

    ListJson是开源的,说是效率比json.Net高,那么我用json.Net时候引用他的DLL Newtonsoft.Json 会报错误,gean.exe已退出,请问该怎么解决
      

  4.   

    ListJson是开源的,说是效率比json.Net高,那么我用json.Net时候引用他的DLL Newtonsoft.Json 会报错误,gean.exe已退出,请问该怎么解决
      

  5.   

    ListJson是开源的,说是效率比json.Net高,那么我用json.Net时候引用他的DLL Newtonsoft.Json 会报错误,gean.exe已退出,请问该怎么解决
      

  6.   

    [Quote=引用 2 楼  的回复:]
    IDictionary来接  操作方便很多
    试试
      

  7.   

    改用json.net后,想问下jobject对象之后 我怎么t通过linq查询