在SQL中,您可以使用以下语法:
SELECT *
FROM MY_TABLE
WHERE VALUE_1 IN (1, 2, 3)
Run Code Online (Sandbox Code Playgroud)
C#中有等价物吗?IDE似乎将"in"识别为关键字,但我似乎无法在其上找到任何信息.
那么,是否可以执行以下操作:
int myValue = 1;
if (myValue in (1, 2, 3))
// Do something
Run Code Online (Sandbox Code Playgroud)
代替
int myValue = 1;
if (myValue == 1 || myValue == 2 || myValue == 3)
// Do something
Run Code Online (Sandbox Code Playgroud) 我有一个NameValueCollection
,并希望迭代值.目前,我正在这样做,但似乎应该有一个更简洁的方法来做到这一点:
NameValueCollection nvc = new NameValueCollection();
nvc.Add("Test", "Val1");
nvc.Add("Test2", "Val1");
nvc.Add("Test2", "Val1");
nvc.Add("Test2", "Val2");
nvc.Add("Test3", "Val1");
nvc.Add("Test4", "Val4");
foreach (string s in nvc)
foreach (string v in nvc.GetValues(s))
Console.WriteLine("{0} {1}", s, v);
Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)
在那儿?
我有一个程序,其中包含一个包含公共枚举的类,如下所示:
public class Card
{
public enum card_suits
{
Clubs,
Hearts,
Spades,
Diamonds
}
...
Run Code Online (Sandbox Code Playgroud)
我想在我的项目的其他地方使用它,但是如果不使用Card.card_suit就不能这样做.有谁知道C#中有没有办法声明这个,以便我能够声明
card_suits suit;
Run Code Online (Sandbox Code Playgroud)
没有引用它所在的类?
在VS2008,有没有办法按F12键跳转到一个函数的定义后,返回到光标之前的位置?我知道这可以用一些附加组件,但是如果有办法让核心产品做到这一点?
有没有办法为整个命名空间定义一个常量,而不仅仅是在一个类中?例如:
namespace MyNamespace
{
public const string MY_CONST = "Test";
static class Program
{
}
}
Run Code Online (Sandbox Code Playgroud)
给出如下编译错误:
预期的类,委托,枚举,接口或结构
是否可以在构造函数执行时关闭表单(或者只是在此阶段停止显示)?
我有以下代码:
public partial class MyForm : Form
{
public MyForm()
{
if (MyFunc())
{
this.Close();
}
}
}
Run Code Online (Sandbox Code Playgroud)
这会在Main()中抛出ObjectDisposedException,这里:
static void Main()
{
...
// Following line errors
Application.Run(new MyForm());
}
Run Code Online (Sandbox Code Playgroud)
我试过像这样检查MyForm的结果:
static void Main()
{
...
MyForm frm = new MyForm();
if (frm != null)
{
// Following line errors
Application.Run(frm);
}
}
Run Code Online (Sandbox Code Playgroud)
但这似乎没有帮助.有谁能告诉我解决这个问题,好吗?也许是一种检查表单以查看它是否仍然存在的方法?
以下代码旨在通过FTP检索文件.但是,我收到了一个错误.
serverPath = "ftp://x.x.x.x/tmp/myfile.txt";
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(serverPath);
request.KeepAlive = true;
request.UsePassive = true;
request.UseBinary = true;
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.Credentials = new NetworkCredential(username, password);
// Read the file from the server & write to destination
using (FtpWebResponse response = (FtpWebResponse)request.GetResponse()) // Error here
using (Stream responseStream = response.GetResponseStream())
using (StreamReader reader = new StreamReader(responseStream))
using (StreamWriter destination = new StreamWriter(destinationFile))
{
destination.Write(reader.ReadToEnd());
destination.Flush();
}
Run Code Online (Sandbox Code Playgroud)
错误是:
远程服务器返回错误:(550)文件不可用(例如,找不到文件,没有访问权限)
该文件肯定存在于远程计算机上,我可以手动执行此ftp(即我有权限).任何人都可以告诉我为什么我可能会收到此错误?
在本地数据库上执行数据库部署(来自VS SQL Server数据库项目)失败后,数据库处于保持单用户模式的状态(部署以单用户模式运行).
当我从SSMS连接到它并尝试类似以下内容:
ALTER DATABASE MyDatabase
SET MULTI_USER;
GO
Run Code Online (Sandbox Code Playgroud)
我收到错误:
目前无法更改数据库'MyDatabase'的状态或选项.数据库处于单用户模式,用户当前已连接到该用户.
我尝试使数据库脱机,SSMS告诉我成功,但实际上并没有做任何事情.到目前为止,我只能通过删除和重新创建数据库来解决这个问题(这有点好,因为它只是一个本地测试数据库).但是,我希望能够重置状态.
如何说服SQL Server将此数据库从单用户模式中删除?
我有一个程序需要在FTP服务器上将文件从一个目录移动到另一个目录.例如,文件位于:
ftp://1.1.1.1/MAIN/Dir1
Run Code Online (Sandbox Code Playgroud)
我需要将文件移动到:
ftp://1.1.1.1/MAIN/Dir2
Run Code Online (Sandbox Code Playgroud)
我发现有几篇文章建议使用Rename命令,所以我尝试了以下内容:
Uri serverFile = new Uri(“ftp://1.1.1.1/MAIN/Dir1/MyFile.txt");
FtpWebRequest reqFTP= (FtpWebRequest)FtpWebRequest.Create(serverFile);
reqFTP.Method = WebRequestMethods.Ftp.Rename;
reqFTP.UseBinary = true;
reqFTP.Credentials = new NetworkCredential(ftpUser, ftpPass);
reqFTP.RenameTo = “ftp://1.1.1.1/MAIN/Dir2/MyFile.txt";
FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用 - 我收到以下错误:
远程服务器返回错误:(550)文件不可用(例如,找不到文件,没有访问权限).
起初我认为这可能与权限有关,但据我所知,我拥有整个FTP站点的权限(它在我的本地PC上,并且uri被解析为localhost).
是否可以在这样的目录之间移动文件,如果没有,它怎么可能?
为了解决已提出的一些观点/建议:
另外,我尝试将目录路径设置为:
ftp://1.1.1.1/%2fMAIN/Dir1/MyFile.txt
Run Code Online (Sandbox Code Playgroud)
源路径和目标路径都有 - 但这也没有区别.
我发现这篇文章,似乎说将目标指定为相对路径会有所帮助 - 似乎不可能将绝对路径指定为目标.
reqFTP.RenameTo = “../Dir2/MyFile.txt";
Run Code Online (Sandbox Code Playgroud) 我有一个.Net标准库,我在尝试使用其中一个依赖库时遇到错误,我认为这是一个版本冲突.在旧式.Net类库中,我可能会添加如下内容:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
Run Code Online (Sandbox Code Playgroud)
但是,我显然不能在Net Standard库中这样做; 所以,我的问题是,在.Net标准世界中解决此类问题的策略是什么?
c# ×7
.net ×2
ftp ×2
sql ×2
.net-3.5 ×1
collections ×1
const ×1
constructor ×1
database ×1
dependencies ×1
enums ×1
ide ×1
in-operator ×1
namespaces ×1
operators ×1
sql-server ×1
winforms ×1