如何对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)”的答案解决了我的问题。谢谢