我想为数组中的所有对象添加一个键:value参数.
例如:
var arrOfObj = [{name: 'eve'},{name:'john'},{name:'jane'}];
Run Code Online (Sandbox Code Playgroud)
现在我想为所有对象添加一个新参数isActive,以便生成的数组看起来像.
例如:
[{
name: 'eve',
isActive: true
}, {
name: 'john',
isActive: true
}, {
name: 'jane',
isActive: true
}]
Run Code Online (Sandbox Code Playgroud)
我总是可以遍历数组并插入一个键值对.但是想知道是否有更好的方法
我正在阅读一些帖子并注意到内部课程的样本.我最近看到了很多,特别是在我浏览的MSDN上的几个例子中.我以前从来没有使用内部类(但也许我真的应该这样)所以我想知道究竟是什么意思?我假设一个内部类(至少是一个私有的)只能用于主类本身,所以将内部类的任何功能简单地合并到外部类的某些方法中就不一样了吗?内部阶级背后有一个OO理由吗?
我主要考虑的是C#,但我认为这适用于任何支持内部类的OO语言.
以msdn为例:CharacterCollection和WordCollection是Document类中的公共类.如果这些不在Document类之外会有什么区别?
目前,我们的TFS(TFVC,而不是 git)项目包含一个托管我们整个产品的文件夹.该文件夹包含三个分支(Dev,Main和Release),每个分支又包含许多不同的子项目.我们正在尝试重组,以便不同的组件包含在它们自己的分支结构中.
问题:是否可以将分支(不是分支本身)下包含的文件夹及其他分支中的相应文件夹移动到新的 TFS项目中,同时保持任何未合并的变更集的关系和状态?
这是我们期望的最终结果的图表:
我们希望将每个"Project 1" 文件夹(左侧)移动到它们自己的分支结构(右侧),但我们需要任何未合并的更改集来"出现".也就是说,如果我们尝试在新结构中从Dev合并到Main,我们将看到一个未在旧结构中合并的(相关)变更集的列表.
这可能吗?如果是这样,我们需要用什么系列的tf/ tfvc命令来解决这个问题呢?我已经深入谷歌了,但是做得很短 - 或者因为我不知道如何用搜索友好的方式描述这个,或者它根本不可能.
我尝试过的:
直接将每个文件夹移动/重命名为新项目(预创建每个目标开发/主要/发布分支)
分支每个文件夹,进入新结构(此时无需预先创建目标分支文件夹)
tf merge /baseless /recursive)和冲突时获取目标分支文件来解决这个问题.然后重新教育分支机构.(至于解释这里)如果这很重要,我们愿意失去整体历史,如果这是解决这个问题的唯一方法.我们最好保留它,即使它意味着在某处存储原文的"已弃用"副本.我不太关心搁置"跟随"他们的来源......我们只有两个会受到影响,如果需要我们可以手动处理.我们正在使用本地TFS 2018.
编辑:响应已发布然后删除的答案:
我不打算移动分支,而是将其内部的文件夹提取到它们自己的相应分支结构中,而不会丢失挂起的更改.我只展示了两个级别,但实际上它们更深入.我能够tf rename在沙盒中的整个分支并获得预期的结果......但重命名分支不是我想要做的,并且移动文件夹会产生意想不到的结果.
当我尝试将一个映射enum到smallintin 时,我得到以下异常OnModelCreating:
InvalidCastException:无法将类型为"System.Byte"的对象强制转换为"System.Int32".
我想这样做是因为在SQL Server中a int是4个字节而a tinyint是1个字节.
相关代码:实体:
namespace SOMapping.Data
{
public class Tag
{
public int Id { get; set; }
public TagType TagType { get; set; }
}
public enum TagType
{
Foo,
Bar
}
}
Run Code Online (Sandbox Code Playgroud)
的DbContext:
using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
namespace SOMapping.Data
{
public class ApplicationDbContext : IdentityDbContext
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
public DbSet<Tag> Tags { get; set; }
protected override void OnModelCreating(ModelBuilder builder)
{ …Run Code Online (Sandbox Code Playgroud) 遗憾的是,我们通过使用JavaScript构建HTML字符串并使用document.write输出数据来进行大量动态网页设计.我偶然发现了一些我的同事编写的代码,如下所示:
var myString = String() + "this is my string" +
"and I am doing a lot of string concatenation" +
"doing this the worst way possible"
Run Code Online (Sandbox Code Playgroud)
这些行继续,有时数百行硬编码HTML(带内联样式和缺少结束标记).我很好奇的部分是String().我以前从未见过这种用法,而且我已经写了很长时间的JavaScript了.我问我的同事是什么,他说"它提高了字符串连接的性能,在调试过程中逐步完成,你不会踩到每一行,而是直接到最后".
现在我经常把这些东西带上一粒盐,但它让我好奇......所以我测试了它.至少Chrome无论开放String()与否,都会一直走到下一个声明.所以我知道这一点至少是不真实的.
那么A. 是什么?它不是一个真正的构造函数(就像它一样),当我输入String()控制台时,我得到了空字符串"".并且B.他的陈述是否有任何事实可以提高绩效?如果是这样,为什么?
我有一个接口,在我们的项目中通常是显式实现的(不是我的规则),并且我们不想使该类密封。
public interface IHostable
{
IHost Host { get; set; }
}
IHost IHostable.Host
{
get { return _host; }
set { _host = value; }
}
private IHost _host;
Run Code Online (Sandbox Code Playgroud)
这个警告 CA1033 建议实现一个可由派生类型访问的受保护方法,这样我们就不会失去对该值的访问。该变量一开始就是私有的这一事实是一个疏忽,所以我很高兴分析器发出了这个警告......因此考虑到这一点,我将其重新实现为:
IHost IHostable.Host
{
get { return Host; }
set { Host = value; }
}
private IHost _host;
protected IHost Host
{
get { return _host; }
set { _host = value; }
}
Run Code Online (Sandbox Code Playgroud)
但是,运行代码分析仍然会发出相同的警告 CA1033。从查看文档以及我可以通过谷歌找到的内容(数量不多)来看,这应该解决警告。
这还有什么问题吗?
我正在处理存储过程.我有一个名为#CashFlow的表,其中包含一段时间的数据.
FundID TradeDate Amount
1 1/1/2004 123.00
1 6/30/2006 100.00
2 1/1/2004 100.00
2 3/15/2010 150.00
3 1/1/2010 100.00
Run Code Online (Sandbox Code Playgroud)
我还有一个名为#Funds的表,其中包含我感兴趣的基金ID列表.(有一堆处理我不会厌烦你为我生成这个基金列表)例如,我只想说我的#Funds表中只有ID的1和2(不包括3).
我有三个时间段(所有结束时间为'8/31/2010'),从1/1/2004,2006年1月1日和2010年1月1日开始,我想汇总这三个时期的总和.
我尝试过这样的事情:
select sum(c1.amount), sum(c2.amount), sum(c3.amount)
from
#fundtable f
inner join
#cashflow c1 on f.fundid = c1.fundid and c1.tradedate between '1/1/2004' and '8/31/2010'
inner join
#cashflow c2 on f.fundid = c2.fundid and c2.tradedate between '1/1/2006' and '8/31/2010'
inner join
#cashflow c3 on f.fundid = c3.fundid and c3.tradedate between '1/1/2010' and '8/31/2010'
Run Code Online (Sandbox Code Playgroud)
但它没有做我想要的事情(实际上我无法弄清楚它到底在做什么).如果我只选择一个句点,我会得到正确的值,但是第二个我添加了一个联接,我的数字全部被打破了.
这就像我想要替换的原始查询:
select
(select sum(Amount) from #Cashflow c inner …Run Code Online (Sandbox Code Playgroud) 我有一个程序可以处理这样的事情
var t=Task.Run(()=>process());
while(!t.IsCompleted())
Task.Delay(1000);
Console.WriteLine(t.Result);
Run Code Online (Sandbox Code Playgroud)
有没有其他方法可以让程序等待任务完成?
我在 C# 中使用 ArrayPool。我想创建自己的池,最大数组数量为 5,最大数组大小为 1050000。我使用了这个 ArrayPool.Create() 方法。我无法理解一件事 - 我试图在下面的代码片段中从池中租用 10 次,尽管我指定最大数组为 5,那么为什么它没有显示任何错误。另外,我指定最大长度为 1050000。那么我如何能够租用 4200000 的阵列而不出现任何错误?
byte[] buffer;
ArrayPool<byte> pool = ArrayPool<byte>.Create(1050000, 5);
for (int i = 0; i < 10; i++)
{
buffer = pool.Rent(4200000);
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试存储从会话中的外部 api 获取的令牌。
与此相关的代码片段;
[HttpPost]
public async void Post()
{
if (HttpContext.Session.GetValue<User>("Token") == null)
{
HttpContext.Session.SetValue("Token", "test");
var res = await _loginBusiness.GetToken();
HttpContext.Session.SetValue("Token", res);
}
}
Run Code Online (Sandbox Code Playgroud)
HttpContext.Session.SetValue("令牌", "测试");
在此部分中,它不会发生任何错误,但第二个相同的代码行在 GetToken() 之后给出错误。
相关错误
System.ObjectDisposeException:'IFeatureCollection 已被释放。对象名称:“集合”。
还有 GetToken():
public async Task<User> GetToken()
{
String url = "login/login";
var client = httpClientFactory.CreateClient("VoiceScope");
var postRes = await client.PostAsync<User>(new UserLogin(), url);
return postRes;
}
Run Code Online (Sandbox Code Playgroud) 我们正在设计一个数据库,需要在表格中存储各种版本的文件(pdf/image /缩小图像).由于某种原因选择使用Filestream的权力,所以这不是辩论.
我似乎无法在网上找到任何指示用于存储pdf和图像数据的适当数据类型的内容.那个或者我在寻找它时只是一个完全白痴.
我不打算开始辩论,所以我不是在寻找自以为是的回答.但是我试图找出一个或另一个是否真的是为我想做的事而设计的.如果其中任何一个都有用,那就是我需要知道的.