我正在阅读C#7.0更改日志并遇到一个显示新元组语法的示例.
private static (int Max, int Min) Range(IEnumerable<int> numbers)
{
int min = int.MaxValue;
int max = int.MinValue;
foreach(var n in numbers)
{
min = (n < min) ? n : min;
max = (n > max) ? n : max;
}
return (max, min);
}
Run Code Online (Sandbox Code Playgroud)
如果编译器优化像min = (n < min) ? n : min;原因min = min操作这样的行似乎有点无用,我很好奇.我编译了代码(在发布模式下)并在ILDASM中打开它,看到该min = min任务仍在那里.
编译器跳过作业是一个棘手的问题吗?或许是因为一些多线程问题?
我正在使用FirebirdSqlProvider 4.8.1.1和EntityFramework 6.0,但system.data column 'invariantname' is constrained to be unique在尝试使用EntityFramework时出现异常。我的app.config档案:
<entityFramework>
<defaultConnectionFactory type="FirebirdSql.Data.EntityFramework6.FbConnectionFactory, EntityFramework.Firebird" />
<providers>
<provider invariantName="FirebirdSql.Data.FirebirdClient" type="FirebirdSql.Data.EntityFramework6.FbProviderServices, EntityFramework.Firebird" />
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
<system.data>
<DbProviderFactories>
<remove invariant="FirebirdSql.Data.FirebirdClient" />
<add name="FirebirdClient Data Provider" invariant="FirebirdSql.Data.FirebirdClient" description=".NET Framework Data Provider for Firebird" type="FirebirdSql.Data.FirebirdClient.FirebirdClientFactory, FirebirdSql.Data.FirebirdClient" />
</DbProviderFactories>
</system.data>
Run Code Online (Sandbox Code Playgroud)
我的machine.confgi文件中只有一个DbProviderFactories实体。如何解决?
我有两个字符串数组,我想迭代其中一个取决于条件.如何避免代码重复?现在*ngIf:
<tr *ngIf="!condition">
<td *ngFor="let field of firstArray">{{field}}</td>
</tr>
<tr *ngIf="condition">
<td *ngFor="let field of secondArray">{{field}}</td>
</tr>
Run Code Online (Sandbox Code Playgroud)
有没有更好的办法?
我有一个EnumSet,并希望将其转换为其序数值的数组.例如:
enum MyEnum { A, B, C; }
EnumSet enumSet = EnumSet.of(MyEnum.A, MyEnum.C);
Run Code Online (Sandbox Code Playgroud)
我想得到什么:
[0, 2]
Run Code Online (Sandbox Code Playgroud)