发布 Nuget 包时指定 PackageReference 的最佳实践是什么?
根据https://learn.microsoft.com/en-us/nuget/consume-packages/package-references-in-project-files,指定版本号相当于 >= 该版本。
例如,以下内容将引用 Newtonsoft.Json 版本 11.0.1 或更高版本以及 RestSharp 106.9.0 或更高版本。
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="11.0.1" />
<PackageReference Include="RestSharp" Version="106.9.0" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
如果另一个开发人员想要在他的项目中使用我的 Nuget 包,那么该开发人员可能也需要在他的项目中使用相同的包,并且他可能无法也不想使用我一直在使用的相同版本。因此,最佳实践是什么?我应该在发布时始终指定最低兼容版本,还是只更新我认为适合我的项目的包,而不用担心发布的版本号?
我似乎无法弄清楚如何将项目添加ImmutableList
到ImmutableDictionary
.
我有以下变量:
ImmutableDictionary<string, ImmutableList<string>> _attributes = ImmutableDictionary<string, ImmutableList<string>>.Empty;
Run Code Online (Sandbox Code Playgroud)
我试图在列表中添加一个值:
string[] attribute = line.Split(':');
if (!_attributes.ContainsKey(attribute[0]))
_attributes = _attributes.Add(attribute[0], ImmutableList<string>.Empty);
if (attribute.Length == 2)
_attributes[attribute[0]] = _attributes[attribute[0]].Add(attribute[1]);
Run Code Online (Sandbox Code Playgroud)
但是,我收到一条错误消息,指出ImmutableList
没有设置器。如何在不重建整个词典的情况下替换词典中的列表?
我正在处理处理 2GB 数据的源代码,这些数据代表 60 秒的网络流量。总处理时间约为 40 秒。我正在尝试尽可能优化我的代码以获得最佳性能,以尝试将总处理时间降低到 30 秒以下。
我目前在 dotTrace 中的分析表明,在我的代码发出的 330 万次调用中,有 7.62% 的时间花在了 Timestamp 结构的构造函数中。
具体来说,我正在努力改进两个陈述:
TimestampHigh = BitConverter.ToUInt32(timestampBytes, 0);
TimestampLow = BitConverter.ToUInt32(timestampBytes, 4);
Run Code Online (Sandbox Code Playgroud)
这是完整的结构:
public readonly struct Timestamp
{
public uint TimestampHigh { get; }
public uint TimestampLow { get; }
public uint Seconds { get; }
public uint Microseconds { get; }
public DateTime LocalTime => new DateTime(EpochTicks + _ticks, DateTimeKind.Utc).ToLocalTime();
private const ulong MicrosecondsPerSecond = 1000000UL;
private const ulong HighFactor = 4294967296UL;
private readonly …
Run Code Online (Sandbox Code Playgroud) 我一生都无法理解 Span 的 Range 运算符背后的逻辑。
我有一个包含 IP 协议标头的以下字节数组:
---------------------------------------------------------------------------------
| | | | | | | | | | | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 9 |
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 …
Run Code Online (Sandbox Code Playgroud)