如何排序C#Jobject

时间:2016-11-15 07:50:21

标签: c# sorting asp.net-core-1.0

在我的模型中,我有public JObject GenericData { get; set; }这个属性我需要在我的Controller中创建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;
        }

1 个答案:

答案 0 :(得分:1)

您不需要对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();

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