C# 创建一个int&;日期时间
我想创建如下列表:C# 创建一个int&;日期时间,c#,.net,list,C#,.net,List,我想创建如下列表: List<int, DateTime> foo = new List<int, DateTime>(); List foo=new List(); 但我得到了这个错误: 使用泛型类型“System.Collections.generic.List”需要1个类型参数 在C#中是否可以这样做?您可以有一个int/DateTime列表 还可以使用动态并以匿名类型发送它 var foo = new List<dynamic>(); foo.A
List<int, DateTime> foo = new List<int, DateTime>();
List foo=new List();
但我得到了这个错误:
使用泛型类型“System.Collections.generic.List”需要1个类型参数
在C#中是否可以这样做?您可以有一个int/DateTime列表 还可以使用
动态并以匿名类型发送它
var foo = new List<dynamic>();
foo.Add(new {X = 0, D = DateTime.Now});
foreach(var d in foo)
{
Console.WriteLine(d);
}
var foo=newlist();
Add(new{X=0,D=DateTime.Now});
foreach(foo中的变量d)
{
控制台写入线(d);
}
如果您使用的是.NET 4.0或更高版本,则可以使用列表
另一种方法是创建一个用作泛型类型的简单类,其好处是可读性(为类型和属性提供描述性名称)
List myList=new List();
类MyType
{
公共整数{get;set;}
公共日期时间日期时间{get;set;}
}
您可以使用收集在列表中的或来实现这一点。出现错误是因为列表包含一个泛型参数,因为它存储一个元素集合(所有元素都是一种基本类型)。为什么不创建一个类来封装这两个属性
public class Foo
{
public int ID { set;get;}
public DateTime CreatedDate { set;get;}
}
然后可以创建该类的列表
List<Foo> objFooList=new List<Foo>();
List objjoulist=new List();
它是带有一个泛型类型参数的列表,而不是列表
。也许你想用字典来代替它?这取决于你想做什么
例如,如果要使用int作为索引来访问如下日期时间,可以使用:
Dictionary<int, DateTime> dict = new Dictionary<int, DateTime>();
dict.Add(1, DateTime.Now);
DateTime d = dict[1];
Dictionary dict=new Dictionary();
dict.Add(1,DateTime.Now);
日期时间d=dict[1];
或者,如果要存储任意值列表并允许重复,可以使用:
var values = new List<Tuple<int, DateTime>>();
values.Add(new Tuple<int, DateTime>(1, DateTime.Now));
Tuple<int, DateTime> value = values.First();
var值=新列表();
Add(新元组(1,DateTime.Now));
元组值=值。第一个();
列表
类型只接受一个泛型类型参数,但您提供了两个。如果要在每个插槽中存储两个值,则需要使用可包含这两个值的包装器类型。比如说
class Storage {
public int IntValue { get; set; }
public DateTime DateValue { get; set; }
}
List<Storage> list = ...;
类存储{
公共int值{get;set;}
公共日期时间日期值{get;set;}
}
列表=。。。;
如果要避免创建自定义类型,也可以使用Tuple
列表只能包含一种类型。您可以在这里做两件事:
创建一个元组列表
列表
使用字典
字典
那没有任何意义。您需要一个类。列表
只能是一种类型。是否要创建?可以在java中使用HashMap而不是字典,我想为每个DateTime提供一个ID。@OpenMind:
Dictionary<int, DateTime> dict = new Dictionary<int, DateTime>();
dict.Add(1, DateTime.Now);
DateTime d = dict[1];
var values = new List<Tuple<int, DateTime>>();
values.Add(new Tuple<int, DateTime>(1, DateTime.Now));
Tuple<int, DateTime> value = values.First();
class Storage {
public int IntValue { get; set; }
public DateTime DateValue { get; set; }
}
List<Storage> list = ...;