我有一节课:
public class MyObject
{
public string Name;
public int Age;
}
Run Code Online (Sandbox Code Playgroud)
我有一个Myobject对象列表:
Name Age
ABC 12
BBC 14
ABC 11
Run Code Online (Sandbox Code Playgroud)
如何使用条件对此列表进行排序:首先排序名称,然后排序年龄.使用此列表,排序后的结果:
Name Age
ABC 11
ABC 12
BBC 14
Run Code Online (Sandbox Code Playgroud) 可能重复:
使用Lambda/Linq将列表排序到对象
C#List <> OrderBy Alphabetical Order
如何通过字符串属性按字母顺序对对象列表进行排序.
我尝试在属性上实现IComparable但我只想出如何对第一个字符进行排序(使用char).
编辑:这是一些示例代码.
class MyObject {
public string MyProperty {get;set;}
}
List<MyObject> sampleList = new List<MyObject>();
MyObject sample = new MyObject();
sample.MyProperty = "Aardvark";
MyObject sample2 = new MyObject();
sample2.MyProperty = "Zebra";
sampleList.Add(sample);
sampleList.Add(sample2);
sampleList.Sort(); // or something similar
foreach (var item in sampleList) {
Console.WriteLine(item.MyProperty);
}
Run Code Online (Sandbox Code Playgroud)
应输出Aardvark和Zebra(按字母顺序排列).
谢谢!
如何通过我的对象列表中的传递字符串值进行排序?我需要在我的List(Of)对象上进行分页和排序,分页没有问题,但我不知道是谁让Order By工作.
这是我目前正在做的事情,它的工作很棒:
Return returnReports.Skip(PageSize * (PageNumber-1)).Take(PageSize).ToList()
Run Code Online (Sandbox Code Playgroud)
我如何让它工作?
Return returnReports.OrderBy(SortColumn).Skip(skip).Take(PageSize).ToList()
Run Code Online (Sandbox Code Playgroud)
SortColumn是传递的字符串值
我正在尝试对一组用户进行排序.我可以访问排序属性和方向(asc,desc).我目前的查询订单如下.但正如您所看到的那样,它并未考虑排序方向.如何在不必使用Dynamic Linq或为"asc"或"desc"排序方向添加另一组语句的情况下构建此表达式.
public override IQueryable<DalLinq.User> GetSort(IQueryable<DalLinq.User> query)
{
//SelectArgs.SortDirection <- Sort Direction
switch (SelectArgs.SortProperty)
{
case "LastName":
query = query.OrderBy(p => p.LastName);
break;
case "FirstName":
query = query.OrderBy(p => p.FirstName);
break;
default:
query = query.OrderBy(p => p.UserName);
break;
}
return query;
}
Run Code Online (Sandbox Code Playgroud) 我喜欢上课
public class ProgressBars
{
public ProgressBars()
{ }
private Int32 _ID;
private string _Name;
public virtual Int32 ID {get { return _ID; } set { _ID = value; } }
public virtual string Name { get { return _Name; } set { _Name = value; }}
}
Run Code Online (Sandbox Code Playgroud)
这是List集合
List<ProgressBars> progress;
progress.Sort //I need to get sort here by Name
Run Code Online (Sandbox Code Playgroud)
如何按名称对此集合进行排序?
谢谢
我写了这个代码IQueryable<T>按列排序sortColumn.我想扩展它,以便列的值BirthDate等于的条目DateTime.Today将排在第一位,但我无法找到或想到如何完成这项工作.
public static IQueryable<T> OrderByField<T>(this IQueryable<T> q, string sortColumn, bool asc)
{
var param = Expression.Parameter(typeof(T), "p");
var prop = Expression.Property(param, sortColumn);
var exp = Expression.Lambda(prop, param);
string method = asc ? "OrderBy" : "OrderByDescending";
Type[] types = new[] { q.ElementType, exp.Body.Type };
var mce = Expression.Call(typeof(Queryable), method, types, q.Expression, exp);
return q.Provider.CreateQuery<T>(mce);
}
Run Code Online (Sandbox Code Playgroud) 我有一个双数组 Double[] array = new Double[5];
例如,如果数组包含如下数据:
{0.5,1.5,1.1,0.6,2}
如何找到最接近1的数字?输出应该是1.1,因为在这种情况下它是最接近1的那个.