我想在许多字段中订购C#中的对象列表,而不仅仅是一个.例如,假设我有一个名为X的类,它有两个属性A和B,我按顺序有以下对象:
object1 => A ="a",B ="h"
object2 => A ="a",B ="c"
object3 => A ="b",B ="x"
object4 => A ="b" ,B ="b"
我想首先按A属性排序列表,当它们等于时,按B元素排序,所以顺序为:
"a""c"
"a""h"
"b""b"
"b""x"
据我所知,OrderBy方法按一个参数排序.
问题:如何通过多个字段订购C#列表?
非常感谢你
public class CarSpecs
{
public String CarName { get; set; }
public String CarMaker { get; set; }
public DateTime CreationDate { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这是一个列表,我试图找出一种有效的方法来排序列表CarList,包含汽车生产日期的6(或任何整数)汽车.我打算做冒泡排序,但那会有用吗?任何帮助?
谢谢
我遇到了以下代码的意外问题.
List<string> items = new List<string>();
items = items.OrderBy(item => item);
Run Code Online (Sandbox Code Playgroud)
此代码生成错误:
无法将类型'System.Linq.IOrderedEnumerable'隐式转换为'System.Collections.Generic.List'.存在显式转换(您是否错过了演员?)
看来我可以改为items类型IEnumerable<string>,错误就消失了.但我需要能够将项目添加到列表中,这IEnumerable不支持.
有人可以帮我理解这个错误,最容易解决的是什么?简单地投射结果是否安全?
我们有一个通用List(Of Product),必须在Product类的两个或多个属性上进行排序.
产品类具有属性"Popular"数字(asc),"Clicked"数字(desc),"Name"字符串(asc).为了命名属性,我们希望列表进行排序.
如何用lamba语句排序?如果找到基于一个属性对列表进行排序.
我目前面临一个困难的排序问题.我有一组事件需要相互排序(比较排序)和它们在列表中的相对位置.
在最简单的术语中,我有事件列表,每个事件都有一个优先级(整数),一个持续时间(秒),以及事件可以出现在列表中的最早发生时间.我需要根据优先级对事件进行排序,但是在最早发生的时间之前,列表中不会出现任何事件.这是一个(希望)让它更清晰的例子:
// Psuedo C# code
class Event { int priority; double duration; double earliestTime ; }
void Example()
{
Event a = new Event { priority = 1, duration = 4.0, earliestTime = 0.0 };
Event b = new Event { priority = 2, duration = 5.0, earliestTime = 6.0 };
Event c = new Event { priority = 3, duration = 3.0, earliestTime = 0.0 };
Event d = new Event { priority = 4, duration …Run Code Online (Sandbox Code Playgroud) 我有一个500000行的无序文件,其信息和日期如下:
for instance desired Result
------------ ---------------
723,80 1,4
14,50 1,5
723,2 10,8
1,5 14,50
10,8 723,2
1,4 723,80
Run Code Online (Sandbox Code Playgroud)
现在我该如何实现这样的事情呢?
我已经尝试过sortedList和sorteddictionary方法但是没有办法在列表中实现新值,因为列表中有一些重复值.如果你建议最好的方法,我会很感激.
还有一件事,我已经看到了这个问题,但是当我使用File时,这个使用了这个类!
我有一个自定义对象列表.该对象包含1个字符串和2个小数.我想基于第二个十进制字段然后第一个十进制字段对列表进行排序.
例如:
object 1 -> "a", 100, 10
object 2 -> "b", 300, 0
object 3 -> "c", 200, 200
object 4 -> "b", 400, 0
Run Code Online (Sandbox Code Playgroud)
将被分类为对象3,对象1,对象4,对象2
如果这已经得到回答,我很抱歉 - 请指出我找不到的帖子
我正在寻找一个从西向东和南向北分类位置点(纬度和经度)的算法.
排序时,应从西部和南部开始对点进行排序.比较两个点时,首先比较经度.列表中的值越大(越西)点越高.如果这两个点具有相同的经度,不太可能但可能,则比较两个点的纬度.最低值(更南)位于列表中的较高位置.
这个algorthm存在于某个地方吗?也许在C#?
ps-这些计算将限于美国大陆的点数.没有负纬度/经度值.
我需要提升一般的List.这是我的通用类型:
public class ContainerData
{
private Point pnt;
private Size size;
private Double Area;
private Contour<Point> contour;
public ContainerData()
{ }
public ContainerData(ContainerData containerData)
{
this.pnt=containerData.pnt;
this.size=containerData.size;
this.Area=containerData.Area;
this.contour = containerData.contour;
}
public Point pointProperty
{
get
{return pnt;}
set
{pnt = value;}
}
public Size sizeProperty
{
get
{return size;}
set
{size = value;}
}
public Double AreaProperty
{
get
{return Area;}
set
{Area = value;}
}
public Contour<Point> ContourProperty
{
get
{return contour;}
set
{ contour = value; …Run Code Online (Sandbox Code Playgroud) 我用三个字段创建了ac#my class list.该字段还列出了设备ID,设备模式,时间.我按时间排序了我的班级名单.时间列表已成功排序,但设备模式列表未按时间列表排序.我怎样才能实现它.我在下面给出的示例代码.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace PBAttendance.App_Code
{
public class DeviceLogData
{
List<int> deviceID = new List<int> { };
List<int> deviceMode = new List<int> { };
List<DateTime> time = new List<DateTime> { };
public List<int> DeviceID
{
get { return deviceID; }
set { deviceID = value; }
}
public List<int> DeviceMode
{
get { return deviceMode; }
set { deviceMode = value; }
}
public List<DateTime> Time
{
get { return time; } …Run Code Online (Sandbox Code Playgroud)