给定一个字符串:
String exampleString = "example";
Run Code Online (Sandbox Code Playgroud)
我如何将其转换为InputStream?
简单的开始一天,给出Dictionary<string, string>如下:
var myDict = new Dictionary<string, string>();
myDict["A"] = "1";
myDict["B"] = "2";
myDict["C"] = "3";
myDict["D"] = "4";
Run Code Online (Sandbox Code Playgroud)
我想创建一个字符串: "A=1;B=2;C=3;D=4"
一个示例实现:
var myStringBuilder = new StringBuilder();
bool first = true;
foreach (KeyValuePair<string, string> pair in myDict)
{
if (first)
{
first = false;
}
else
{
myStringBuilder.Append(";");
}
myStringBuilder.AppendFormat("{0}={1}", pair.Key, pair.Value);
}
var myDesiredOutput = myStringBuilder.ToString();
Run Code Online (Sandbox Code Playgroud)
请注意,字典可能少于10个项目,这表明StringBuilder过度.
哪些替代实施更简洁/高效?框架是否有任何有用的功能?
给定test.txt包含:
test
message
Run Code Online (Sandbox Code Playgroud)
我想最终得到:
testing
a message
Run Code Online (Sandbox Code Playgroud)
我认为以下内容应该有效,但它不会:
Get-Content test.txt |% {$_-replace "t`r`n", "ting`r`na "}
Run Code Online (Sandbox Code Playgroud)
我怎样才能找到并替换我所发现的包含CRLF的地方?
在为Java API编写单元测试时,可能会出现需要对异常执行更详细验证的情况.比JUnit 提供的@test注释提供的更多.
例如,考虑一个应该从其他接口捕获异常的类,包装该异常并抛出包装的异常.您可能需要验证:
这里的要点是,您希望在单元测试中对异常进行额外验证(而不是关于是否应该验证异常消息等事项的争论).
对此有什么好的方法?
使用以下文件读取代码:
using (FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.None))
{
using (TextReader tr = new StreamReader(fileStream))
{
string fileContents = tr.ReadToEnd();
}
}
Run Code Online (Sandbox Code Playgroud)
并且以下文件编写代码:
using (TextWriter tw = new StreamWriter(fileName))
{
tw.Write(fileContents);
tw.Close();
}
Run Code Online (Sandbox Code Playgroud)
可以看到以下异常详细信息:
该进程无法访问文件'c:\ temp\myfile.txt',因为它正由另一个进程使用.
避免这种情况的最佳方法是什么?读者是否需要在收到例外后重试,还是有更好的方法?
请注意,阅读器进程使用FileSystemWatcher来了解文件何时更改.
另请注意,在这种情况下,我不是在寻找在两个进程之间共享字符串的替代方法.
我从多个进程插入一个SQL数据库.过程有时可能会尝试将重复数据插入表中.我试图以一种处理重复的方式编写查询,但我仍然得到:
System.Data.SqlClient.SqlException: Violation of UNIQUE KEY constraint 'UK1_MyTable'. Cannot insert duplicate key in object 'dbo.MyTable'.
The statement has been terminated.
Run Code Online (Sandbox Code Playgroud)
我的查询看起来像:
INSERT INTO MyTable (FieldA, FieldB, FieldC)
SELECT FieldA='AValue', FieldB='BValue', FieldC='CValue'
WHERE (SELECT COUNT(*) FROM MyTable WHERE FieldA='AValue' AND FieldB='BValue' AND FieldC='CValue' ) = 0
Run Code Online (Sandbox Code Playgroud)
约束'UK1_MyConstraint'表示在MyTable中,3个字段的组合应该是唯一的.
我的问题:
请注意,我知道还有其他方法可以解决"INSERT if not exists"的原始问题,例如(摘要):
我应该使用其中一种方法吗?
编辑1个 SQL用于创建表:
CREATE TABLE [dbo].[MyTable](
[Id] [bigint] IDENTITY(1,1) NOT NULL,
[FieldA] [bigint] NOT NULL,
[FieldB] [int] NOT NULL,
[FieldC] [char](3) NULL,
[FieldD] [float] …Run Code Online (Sandbox Code Playgroud) 原生DotNet应用程序将在首次使用时加载所有引用的程序集(及其引用).但是,ASP.NET将在首次访问时加载所有引用的程序集(及其引用).
这种理解是否正确?
有没有办法强制ASP.NET按需加载程序集(如本地应用程序)?
我想解决的具体方案是:
给出以下xml:
<rootnode>
<childnode arg="a">Content A</childnode>
<childnode arg="b">Content A</childnode>
</rootnode>
Run Code Online (Sandbox Code Playgroud)
将XMLPoke与以下XPath一起使用:
rootnode/childnode[arg='b']
Run Code Online (Sandbox Code Playgroud)
结果(如果替换字符串为空)是:
<rootnode>
<childnode arg="a">Content A</childnode>
<childnode arg="b"></childnode>
</rootnode>
Run Code Online (Sandbox Code Playgroud)
当我们真正想要移除childnode本身时,已删除了childnode的内容.期望的结果是:
<rootnode>
<childnode arg="a">Content A</childnode>
</rootnode>
Run Code Online (Sandbox Code Playgroud)
必须根据childnode参数选择子节点.
给定一个UTF-8编码字符串或任意二进制数据的字节数组,可以在Java中使用哪些方法来确定它是什么?
该数组可以通过类似于以下的代码生成:
byte[] utf8 = "Hello World".getBytes("UTF-8");
Run Code Online (Sandbox Code Playgroud)
或者,它可能是由类似于以下代码生成的:
byte[] messageContent = new byte[256];
for (int i = 0; i < messageContent.length; i++) {
messageContent[i] = (byte) i;
}
Run Code Online (Sandbox Code Playgroud)
关键是我们不知道数组包含什么但需要找出以填写以下函数:
public final String getString(final byte[] dataToProcess) {
// Determine whether dataToProcess contains arbitrary data or a UTF-8 encoded string
// If dataToProcess contains arbitrary data then we will BASE64 encode it and return.
// If dataToProcess contains an encoded string then we will decode it and return.
}
Run Code Online (Sandbox Code Playgroud)
如何扩展到覆盖UTF-16或其他编码机制?
如何使用C#获取我的系统连接到的无线接入点的BSSID/MAC(媒体访问控制)地址?
请注意,我对WAP的BSSID感兴趣.这与WAP的网络部分的MAC地址不同.
c# ×3
java ×3
asp.net ×1
distributed ×1
exception ×1
file-io ×1
inputstream ×1
junit ×1
nant ×1
networking ×1
powershell ×1
regex ×1
sql-server ×1
string ×1
unicode ×1
utf-8 ×1
wireless ×1
xml ×1
xmlpoke ×1