相关疑难解决方法(0)

是否有没有唯一键的Dictionary <Key,Value>?

可能重复:
.NET词典中的重复键?

我需要创建一个Collection<string,object>,一个是字符串,另一个是对象.因为没有任何项目是唯一的,所以我不能使用Dictionary.

有没有办法创造List<T,T>?因为我不想创建一个对象来保存这两个值只是为了在单个foreach循环中使用它.

谢谢

.net c#

24
推荐指数
2
解决办法
5万
查看次数

是C#4.0 Tuple协变

(我会自己检查一下,但我没有VS2010(还))

假设我有2个基本接口:

IBaseModelInterface
IBaseViewInterface
Run Code Online (Sandbox Code Playgroud)

和2个接口实现这些:

ISubModelInterface : IBaseModelInterface
ISubViewInterface : IBaseViewInterface
Run Code Online (Sandbox Code Playgroud)

如果我定义一个Tuple<IBaseModelInterface, IBaseViewInterface>我想根据返回的工厂的结果设置它Tuple<ISubModelInterface, ISubViewInterface>.

在C#3中,即使子接口实现了基本接口,我也无法做到这一点.我非常确定C#4允许我这样做,IEnumerable<IBaseModelInterface>因为我现在使用in关键字来定义协方差.因此,没有Tuple让我这样做呢?

从我(小)我理解,协方差只允许在接口上,所以这是否意味着需要一个ITuple<T1, T2>接口?这存在吗?

c# tuples covariance

11
推荐指数
2
解决办法
1407
查看次数

意外的元组不等式

我正在使用 .net core 3.1 / C# 8.0。我有两个元组,我希望它们具有相等的值,但是运行时返回不等式。我的期望有什么问题?

Tuple<decimal, double> firstTuple;
Tuple<decimal, double> secondTuple;
Run Code Online (Sandbox Code Playgroud)

测试:

bool tuplesEqualInValue = (firstTuple == secondTuple);
Run Code Online (Sandbox Code Playgroud)

屏幕截图显示每个项目的firstTuplesecondTuple保持相同的值。然而第一个测试返回false

在此处输入图片说明

文档和其他 SO 帖子对我暗示测试应该返回truehttps : //docs.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-7.3/tuple-equality

/sf/answers/3093602501/

/sf/answers/354884421/

c# c#-8.0

3
推荐指数
1
解决办法
66
查看次数

标签 统计

c# ×3

.net ×1

c#-8.0 ×1

covariance ×1

tuples ×1