Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何对C#Jobject进行排序_C#_Sorting_Asp.net Core 1.0 - Fatal编程技术网

如何对C#Jobject进行排序

如何对C#Jobject进行排序,c#,sorting,asp.net-core-1.0,C#,Sorting,Asp.net Core 1.0,在我的模型中,我有publijobject GenericData{get;set;}对于这个属性,我需要在控制器中创建JObject,将数据传递给这个属性。我已经这样做了,但现在我需要对Jobject中的数据进行排序,我不知道如何进行排序。Jobject没有开箱即用的排序功能。 控制器中的代码如下所示 var attributes = _context.AttributeRecords.Include(a => a.Attribute); var queryRecords = a

在我的模型中,我有
publijobject GenericData{get;set;}
对于这个属性,我需要在控制器中创建JObject,将数据传递给这个属性。我已经这样做了,但现在我需要对Jobject中的数据进行排序,我不知道如何进行排序。Jobject没有开箱即用的排序功能。 控制器中的代码如下所示

var attributes = _context.AttributeRecords.Include(a => a.Attribute);
    var queryRecords = attributes.Select(l => new
        {
            RecordId = l.RecordId,
            ProjectId = l.ProjectId,
            Attribute = l.Attribute.Description,
            Value = l.Value,
            InfoId = l.InfoId
        }).ToList();
        var recordsValues = queryRecords.Where(b => b.InfoId == i.InfoId).ToList();
        var jObjectValues = new JObject();
        foreach (var n in recordsValues)
        {
            if (n.Value.Contains(","))
            {
                var stringToSplit = n.Value;
                var stringValues = stringToSplit.Split(',');
                List<string> arr = new List<string>();
                var allValues = "";
                foreach (var d in stringValues)
                {
                    var values = await _context.AttributeValues.FirstOrDefaultAsync(v => v.Key == n.Value);
                    arr.Add(values != null ? values.Description : d);
                    allValues = string.Join(",", arr);
                }
                jObjectValues.Add(n.Attribute, allValues);
            }
            else
            {
                var values = await _context.AttributeValues.FirstOrDefaultAsync(v => v.Key == n.Value);
                jObjectValues.Add(n.Attribute, values != null ? values.Description : n.Value);
            }
            i.GenericData = jObjectValues;
        }
var attributes=\u context.AttributeRecords.Include(a=>a.Attribute);
var queryRecords=attributes.Select(l=>new
{
RecordId=l.RecordId,
projectd=l.projectd,
属性=l.Attribute.Description,
值=l.值,
InfoId=l.InfoId
}).ToList();
var recordsValues=queryRecords.Where(b=>b.InfoId==i.InfoId.ToList();
var jObjectValues=new JObject();
foreach(记录值中的变量n)
{
如果(n.Value.Contains(“,”))
{
var stringToSplit=n.值;
var stringValues=stringToSplit.Split(',');
List arr=新列表();
var-allValues=“”;
foreach(stringValues中的变量d)
{
var values=wait _context.AttributeValues.FirstOrDefaultAsync(v=>v.Key==n.Value);
arr.Add(值!=null?值。说明:d);
allValues=string.Join(“,”,arr);
}
添加(n.Attribute,allValues);
}
其他的
{
var values=wait _context.AttributeValues.FirstOrDefaultAsync(v=>v.Key==n.Value);
添加(n.Attribute,values!=null?值。说明:n.Value);
}
i、 GenericData=JobjectValue;
}

您不需要对Jobject进行排序,您可以这样做:

var queryRecords = attributes.Select(l => new
    {
        RecordId = l.RecordId,
        ProjectId = l.ProjectId,
        Attribute = l.Attribute.Description,
        Value = l.Value,
        InfoId = l.InfoId
    }).OrderBy(o => o.Attribute).ToList();

我希望这会对您有所帮助。

看起来像是一个复制品。这能满足你的需要吗?不,绝对不能。。。但是带“.OrderBy(o=>o.Attribute)”的答案解决了我的问题。谢谢