给出一个数组:
public class MyObject
{
public int ID { get; set; }
public DateTime timeStamp { get; set; }
public int value { get; set; }
}
如何使用List<Objects>
或List<List<Object>>
或任何其他方法创建List<Objects>
(.Select<>
)或.Orderby<>
数组的列表, ID字段?
我的初始数组将具有多个具有相同时间戳的ID。我想分别处理每个ID。
答案 0 :(得分:2)
我假设你想按ID 分组对象,在这种情况下你可以这样做:
var groups = objects.Groupby(o => o.ID)
.Select(g => g.ToList());
这将为您提供可以迭代的List<Object>
“集合”。如果确实想要列表或列表数组,只需将ToList()
或ToArray()
添加到最终查询中。
答案 1 :(得分:1)
问题不是很具体
List<Object> ListObect = ArrayOject.OrderBy(x => x.ID).ToList();
答案 2 :(得分:1)
您可以使用Enumerable.GroupBy方法按照具有相同ID的项目对列表进行分组:
var groupedByID = originalList.GroupBy(x => x.ID);
从技术上讲,这会返回IEnumerable<IGrouping<int, Object>>
,但IGrouping
可以像列表或数组一样进行迭代。如果您需要索引访问权限,或者需要动态添加/删除项目,通常只需要List
。
答案 3 :(得分:-1)
看看这是否有帮助
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string[] input = {
"123, 1/1/2016, 456\n",
"456, 1/2/2016, 456\n",
"789, 1/3/2016, 456"
};
List<MyObject> objects = input.Select(x => x.Split(new char[] {','}, StringSplitOptions.RemoveEmptyEntries)).Select(y => new MyObject() {ID = int.Parse(y[0]), timeStamp = DateTime.Parse(y[1]), value = int.Parse(y[2])}).ToList();
}
}
public class MyObject
{
public int ID { get; set; }
public DateTime timeStamp { get; set; }
public int value { get; set; }
}
}