一般情况下,我使用a List然后返回它们,IEnumerable因为我不再需要更新它们.
但是,我遇到了一个问题,我实际上需要通过它们进行枚举,但首先需要知道计数.
将IEnumerable枚举每个项目并找到计数(O(N)),还是依赖于ListCount属性(O(1))?
另外,如果IEnumerable是LINQ查询的结果怎么办?
我在解决方案文件中有20个项目.其中1个项目是所有项目都参考的标准库项目.
大约一年前,我们添加了一个新的nuget包,我们称之为Package A5.0.0.0版.它有一堆文件,它们会在编译时全部转移,但我们最终处理它.我们将包添加到我们的标准库项目(另一个参考的那个).
我是Nuget的新手(所以也许我做错了)所以我做了一个新包作为帮助Package A.我已经设置了所有内容,以便帮助程序依赖于Package A版本3.0.0.0到5.0.0.0(因此它适用于版本低于我们的其他人).让我们称这个新包Package A helper
我安装Package A helper,一切正常.我去做拉取请求,现在我们的解决方案中的每个app.config都有
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Package.A" publicKeyToken="8FC3CCAD86" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
Run Code Online (Sandbox Code Playgroud)
如果没有它,它将编译正常,但视觉工作室抱怨并发出警告.是什么赋予了?我的经理现在不会让我合并我的代码,因为它会给app.config增加太多噪音,并且过分依赖于Package A.
为什么Package A在我们安装之前已经满足主要依赖关系的时候添加依赖的nuget包必须拥有这个新的bindingRedirect Package A Helper?
当我在nuget包和package.config中指定3.0.0.0-5.0.0.0时,为什么会说0.0.0.0-5.0.0.0
更新:
当我Package A helper使用对Package A5.0.0.0版的引用构建时,所有bindingRedirects都不会在每个app.config中自动填充,而是生成警告.我最初用3.0.0.0构建它,因为我认为最好用最低的依赖构建它.问题仍然存在,因为visual studio仍然警告并建议创建bindingRedirects.
No way to resolve conflict between "Package A, Version=5.0.0.0, Culture=neutral, PublicKeyToken=83hfhsd33" and "Package A, Version=3.0.0.0, Culture=neutral, PublicKeyToken=83hfhsd33". Choosing "Package A, Version=5.0.0.0, Culture=neutral, PublicKeyToken=83hfhsd33" arbitrarily.
Consider …Run Code Online (Sandbox Code Playgroud) c# assemblybinding visual-studio nuget assembly-binding-redirect
我能找到的唯一参考是有人建议使用实体框架来做到这一点,但我没有或使用实体框架。关于这个主题的唯一另一件事是从 SQL 表转到 C# 类,这与我想要的相反。
这不必与 TSQL/MSSQL (2014) 兼容,但那是我的 DBMS。
C# 类只是一个 POCO。我想我听说您可以参加该课程并以某种方式将其转换为 DataTable,然后使用 SqlBulkCopy 让它从 DataTable 创建一个表。
这就是我目前正在使用的,它使用 SELECT INTO 并将空值转换为 sqlType 以生成可为空的列。正如您所看到的,它非常原始,但主要完成了工作 - 我正在寻找不易出错的方法。
var columnNames = GetColumnsToBeUpdated<T>().ToList();
var columnTypes = GetColumnsTypesToBeUpdated<T>().ToList();
var selects = columnNames.Select((t, i) => $"CAST(NULL as {columnTypes[i]}) AS [{t}]");
var createsql = $@"
SELECT {string.Join(", ", selects)}
INTO SDE.[{tableName}]";
using (var connection = new SqlConnection(_sdeConnectionString))
{
EsriServer.ExecuteNonQuery(connection, $"IF OBJECT_ID(N'SDE.[{tableName}]', N'U') IS NOT NULL " +
$"DROP TABLE SDE.[{tableName}]", null);
EsriServer.ExecuteNonQuery(connection, createsql, null); …Run Code Online (Sandbox Code Playgroud) 我派生自这个基类,以便将每个单独的测试封装到一个回滚的事务中
public abstract class TransactionBackedTest
{
private TransactionScope _transactionScope;
[SetUp]
public void TransactionSetUp()
{
var transactionOptions = new TransactionOptions
{
IsolationLevel = IsolationLevel.ReadCommitted,
Timeout = TransactionManager.MaximumTimeout
};
_transactionScope = new TransactionScope(TransactionScopeOption.Required,
transactionOptions);
}
[TearDown]
public void TransactionTearDown()
{
_transactionScope.Dispose();
}
}
Run Code Online (Sandbox Code Playgroud)
使用这个我也尝试以相同的方式设置TestFixure事务:
[TestFixture]
class Example: TransactionBackedTest
{
private TransactionScope _transactionScopeFixure;
[TestFixtureSetUp]
public void Init()
{
var transactionOptions = new TransactionOptions
{
IsolationLevel = IsolationLevel.ReadCommitted,
Timeout = TransactionManager.MaximumTimeout
};
_transactionScopeFixure = new TransactionScope(TransactionScopeOption.Required,
transactionOptions);
SetupAllDataForAllTest();
}
[TestFixtureTearDown]
public void FixtureTearDown()
{ …Run Code Online (Sandbox Code Playgroud) 我想将一个空的javascript数组POST []到webAPI并让它创建一个空的整数列表.我也想要它,所以如果我将javascript发布null到webAPI,它将null分配给整数列表.
JS:
var intArray = [];
$.ajax({
type: 'POST',
url: '/api/ListOfInts',
data: {'' : intArray},
dataType: 'json'
});
Run Code Online (Sandbox Code Playgroud)
c#webapi
[HttpPost]
public void ListOfInts([FromBody]List<int> input)
Run Code Online (Sandbox Code Playgroud)
问题1)Jquery拒绝发送数据{'' : []}作为后有效负载.只要我在数组中添加一些内容就可以了{'' : [1,2,3]}
问题2)将 空的js数组传递给控制器会给出null基于我读到的内容,即使我将它发布为空数组,它也会将列表初始化为null.讨论的解决方案有它,所以列表总是初始化为空,但我不希望这样.我希望它在某些情况下为null(当发送null/undefined时),并且在[]发送时它应该初始化为空.
编辑:请参阅https://www.asp.net/web-api/overview/advanced/sending-html-form-data-part-1,了解我使用的原因{'' : []}
我希望在新的 google chars API 上获得图例分页。我以前看到它是可能的,但现在找不到任何文档。
如果不再可能,我怎样才能让我的折线图图例扩展图表 div?
我将 div 设置为 min-height: 400px 并且它强制 SVG 为 400px 并且不调整 div 的大小。
我制作了这个超级快速的演示,展示了 35 个图例,您可以看到它是如何将它们切断的。我要么希望它允许一些分页,要么根据需要扩展图表的大小,或者显示第二列图例。
https://jsfiddle.net/4y800onc/
如果您切换到经典模式,您会看到它尝试了一个非常奇怪的水平图例分页。不幸的是我无法切换到经典模式(我的应用程序依赖于材料模式)
google.charts.load('current', {
'packages': ['line', 'corechart']
});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var button = document.getElementById('change-chart');
var chartDiv = document.getElementById('chart_div');
var data = new google.visualization.DataTable();
data.addColumn('date', 'Month');
data.addColumn('number', "Average Temperature");
data.addColumn('number', "Average Hours of Daylight");
data.addColumn('number', "Average Hours of Daylight");
data.addColumn('number', "Average Hours of Daylight");
data.addColumn('number', "Average Hours of Daylight");
data.addColumn('number', "Average Hours of Daylight");
data.addColumn('number', "Average Hours …Run Code Online (Sandbox Code Playgroud) master过去一个月一直在研究Current 。一个名为的分支contract也在同时进行。
contract被master错误地合并了。100 次提交,日期与master已经存在的提交重叠。
我怎样才能完全删除所有合并提交100从拉入请求contract到master?
我们对拉取请求进行了 GitHub 恢复,并删除了代码但没有删除历史记录。现在,当我们尝试执行合并contract到master其中的模拟拉取请求时,显示没有任何更改。(我假设是因为那些提交已经进入但被恢复了?)
master除了还原之外,合并后没有任何提交。
如何完全删除拉取请求添加的任何提交,并在我们最终合并contract到master.
我想做一个构建配置,部署到我们的开发服务器并运行每个测试(快速和简短)。
我有一个用于进行生产部署(无测试)的构建配置,但我想修改它,以便生产部署首先触发带有测试的开发部署,然后继续进行生产部署。
我不想将 dev deploy/testing 放在生产配置中,我希望它触发另一个配置并在该配置失败时取消。
这能做到吗?
c# ×5
asp.net ×1
charts ×1
git ×1
git-revert ×1
github ×1
ienumerable ×1
javascript ×1
jquery ×1
linechart ×1
linq ×1
merge ×1
nuget ×1
nunit ×1
sql ×1
sql-server ×1
t-sql ×1
teamcity ×1
transactions ×1
unit-testing ×1