.NET 框架 4.7.2。Visual Studio 2019。有关此错误的其他帖子中没有具体解决此问题。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Stuff
{
class Program
{
static void Main(string[] args)
{
string firstPart = "ABC 123 XYZ";
string firstPartMinusLast = string.Join(" ", firstPart.Split(' ').SkipLast(1));
Console.WriteLine(firstPartMinusLast);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我收到一个 Intellisense 错误SkipLast:
string[] 不包含“SkipLast”的定义,并且找不到接受“string[]”类型的第一个参数的可访问扩展方法“SkipLast”(您是否缺少 using 指令或程序集引用?)
根据我可以在网上找到的任何文档,using System.Linq应该涵盖这种方法吗?
我构建了一个控制台应用程序,用于监视 Windows 2019 Server 上的一组文件夹,并使用相同的文件名将任何新创建的 .txt 文件复制到另一个文件夹。到目前为止,它可以实现基本功能。现在我必须处理这样一个事实:大多数时候,这些文件很大,需要几分钟才能完成创建。我已经浏览了几篇 SO 帖子,并拼凑了以下代码来尝试完成此任务:
using System;
using System.IO;
namespace Folderwatch
{
class Program
{
static void Main(string[] args)
{
string sourcePath = @"C:\Users\me\Documents\SomeFolder";
FileSystemWatcher watcher = new FileSystemWatcher(sourcePath);
watcher.EnableRaisingEvents = true;
watcher.IncludeSubdirectories = true;
watcher.Filter = "*.txt";
// Add event handlers.
watcher.Created += new FileSystemEventHandler(OnCreated);
}
// Define the event handlers.
private static void OnCreated(object source, FileSystemEventArgs e)
{
// Specify what is done when a file is created.
FileInfo file = new FileInfo(e.FullPath);
string …Run Code Online (Sandbox Code Playgroud) 昨天,我在 Windows Server 2012 R2 上完成了 ElasticSearch 的安装,并且能够正常启动 ElasticSearch 服务。
今天,我安装了 Kibana 和 X-Pack,但在尝试启动 ElasticSearch 服务时出现错误。
C:\Program Files\Elastic\Elasticsearch\bin>elasticsearch
[2017-07-27T14:47:24,033][INFO ][o.e.n.Node ] [VSMAIN-01] ini
tializing ...
[2017-07-27T14:47:24,080][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [V
S-SQL-MAIN-01] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.IllegalStateException: f
ailed to obtain node locks, tried [[F:\Elastic\Elasticsearch\Data\elasticsearch-
vd]] with lock id [0]; maybe these locations are not writable or multiple nodes
were started without increasing [node.max_local_storage_nodes] (was [1])?
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:127
) ~[elasticsearch-5.5.0.jar:5.5.0]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:
114) ~[elasticsearch-5.5.0.jar:5.5.0]
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwar
eCommand.java:67) ~[elasticsearch-5.5.0.jar:5.5.0]
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:1
22) …Run Code Online (Sandbox Code Playgroud) 我完全没有使用 PowerShell 的经验 - 我想要做的是使用我的 Azure 自动化服务来设置一个 Runbook,它会在每晚凌晨 1 点自动重新启动我的一个 Azure Web 应用程序。
是否可以使用 Powershell/Azure 自动化来完成此操作?
这个特殊案例不应该与任何其他线程重复 - 我相信我已经检查了所有这些并且我不相信任何具体提及这个案例。
我有这个控制器:
namespace Cantrel.Application.CantrelSearchApi.Controllers
{
[Route("api/[controller]")]
[Authorize]
public class MonitorsController : Controller
{
private readonly IMonitoringApiService monitoringService;
private readonly IClientsApiService clientsService;
private readonly ILogger<MonitorsController> logger;
public MonitorsController(IMonitoringApiService monitoringService,
IClientsApiService clientsService,
ILogger<MonitorsController> logger)
{
this.monitoringService = monitoringService;
this.clientsService = clientsService;
this.logger = logger;
}
[HttpGet("{id}")]
public async Task<IActionResult> Get(string id)
{
if (string.IsNullOrEmpty(id))
{
return BadRequest("No id was provided. Please provide a valid monitor id or subject id.");
}
try
{
MonitorDto monitor;
if (Guid.TryParse(id, out Guid monitorId))
{ …Run Code Online (Sandbox Code Playgroud) 到目前为止,CSVHelper .NET库似乎很棒,但是对于像我这样的伪初学者来说,该文档有点缺乏。
我需要读取一个csv文件并将结果写入我们的SQL Server数据库。对于我要写入的表,我需要从CSV列映射到它的列,包括将多个字段串联在一起。
这是我要读取的csv文件的内容:
public static void Main(string[] args)
{
using (var reader = new StreamReader(@"C:\Users\me\Documents\file.csv"))
using (var csv = new CsvReader(reader))
{
csv.Configuration.PrepareHeaderForMatch = (string header, int index) =>
header.Replace(" ", "_").Replace("(", "").Replace(")", "").Replace(".", "");
var records = csv.GetRecords<EntityCsv>().ToList();
}
}
Run Code Online (Sandbox Code Playgroud)
我的EntityCsv班级包含csv文件所有列的属性名称。
然后,我还有一个名为的类TaskEntity,其中包含目标数据库表的属性名称和类型(尽管我不清楚是否需要此属性)。
最后,根据同事的建议,我有一种方法可以这样使用SQLBulkCopy:
public void AddBulk(List<TaskEntity> entities)
{
using (var con = GetConnection())
{
SqlBulkCopy bulk = new SqlBulkCopy(con);
bulk.BatchSize = 2000;
bulk.BulkCopyTimeout = 0;
bulk.DestinationTableName = "dbo.CsvExports";
bulk.WriteToServer(entities.AsDataTable());
bulk.Close();
} …Run Code Online (Sandbox Code Playgroud) SQL Server 2016 Enterprise - 假设我在主表上运行查询以从ID 1到5中恢复所有记录.我会得到这样的结果:
ID Status BatchID
1 Active 493fd8bc
1 Active 493fd8bc
1 Active 493fd8bc
1 Active 493fd8bc
1 Active 493fd8bc
2 Active 2d91c2f2
2 Active 2d91c2f2
3 Active 2a1338ac
3 Active 2a1338ac
3 Active 2a1338ac
4 Active 0c469bcc
4 Active 0c469bcc
4 Active 0c469bcc
4 Active 0c469bcc
4 Active 0c469bcc
4 Active 0c469bcc
4 Active 0c469bcc
5 Active ca8896bd
5 Active ca8896bd
5 Active ca8896bd
Run Code Online (Sandbox Code Playgroud)
以上是我们期望看到的,每个ID都BatchID与它相关联(区分每个记录的其他列与此问题无关).
我们遇到了一些问题,我们发现并非所有情况都是如此ID's.例如,假设我们运行相同的查询,它返回了这个:
ID Status …Run Code Online (Sandbox Code Playgroud) SQL Server 2016.
我有一个看起来像这样的表:
ID Categories
1 XMDO1, EFA02, EFA04, EMDO1, XMDO2
2 EFR02, LFA02, UFA04, RMED1, XMDO1, XMDO2
3 ELR02, GFF02, XFA04, VMED1, XMDO1
Run Code Online (Sandbox Code Playgroud)
...以及2,000个类似记录,其中任何代码都可以按字符串中的任何顺序出现.
如何构造一个查询以从所有上述记录中删除XMDO1,以便生成的表看起来像这样?
ID Categories
1 EFA02, EFA04, EMDO1, XMDO2
2 EFR02, LFA02, UFA04, RMED1, XMDO2
3 ELR02, GFF02, XFA04, VMED1
Run Code Online (Sandbox Code Playgroud) 我是C#的新手并对此感到有些困惑,主要是因为过去几个月一切都与这个网络应用程序完美配合,而这个问题刚刚开始,似乎几个月来代码没有任何变化.我在这里阅读了几篇与此错误相关的帖子,但所有答案对我的知识水平来说都是一般性的.
抛出的错误是:
System.Core.dll中出现"System.ArgumentNullException"类型的异常,但未在用户代码中处理
附加信息:值不能为空.
代码是:
[Route("ajax/addOrUpdateSource")]
[HttpPost]
public JsonResult AddOrUpdateSource(Source source, string html)
{
var htmlDoc = new HtmlAgilityPack.HtmlDocument();
htmlDoc.LoadHtml(html);
var response = new Dictionary<string, object>();
var labels = htmlDoc.DocumentNode.SelectNodes("//label");
List<string> categories = new List<string>();
string[] vals = new string[] { };
for(int n = 1; n < labels.Count(); n++)
{
var label = labels[n].Attributes[0].Value;
if (label.Contains( "btn") && label.Contains("btn-primary"))
categories.Add(labels[n].InnerText.Trim());
}
response.Add("source", null);
try
{
string catValues = String.Join(", ", categories.ToArray());
source.LastUpdateDateTime = DateTimeOffset.UtcNow;
source.LastUpdateUser = User.Identity.Name;
source.ProductCategory = …Run Code Online (Sandbox Code Playgroud)