我试图用DotNetZip解压缩文件,但我在"e"上收到错误
using (ZipFile zip = ZipFile.Read(openFileDialog1.FileName))
{
foreach (ZipEntry e in zip)
{
e.Extract(Environment.CurrentDirectory, ExtractExistingFileAction.OverwriteSilently);
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个让我疯狂的问题.我正在使用一个泛型List,每当我尝试将其第一个(或最后一个?)索引分配给变量时,它会抛出ArgumentOutOfRangeException.这是一大堆代码,因此我将尝试仅提取相关内容.所以这里是:
private string GetRuleByName(string name, List<string> rules)
{
if(rules != null)
{
List<string> todo = new List<string>();
todo.AddRange(rules);
while(rules.Count != 0)
{
string r = todo[0]; // <- Error 'ArgumentOutOfRangeException' here
todo.RemoveAt(0);
// ...
}
}
}
Run Code Online (Sandbox Code Playgroud)
这就是我称之为方法的方式:
void treeView_AfterSelect(object sender, TreeViewEventArgs e)
{
string currentRule = GetRuleByName(treeView.SelectedNode.FullPath, ruleCollection)
// the string list "ruleCollection" always contains
// strings and thus is never empty
}
Run Code Online (Sandbox Code Playgroud)
虽然它不是一个非常详细的介绍正在发生的事情,因为我不得不切断一些复杂的代码,我真的希望别人可能会看到产生错误的原因.
非常感谢提前至少看看!
编辑:
这就是方法的样子.我没有改变任何东西,以显示其中的真实内容.我希望对某些人有意义:
private Rule GetRuleByNameOrId(string stName, List<Rule> rules)
{
if(rules != null)
{ …Run Code Online (Sandbox Code Playgroud) for(;1;)在C语言中它意味着什么?
它是否与for(;;)无限循环意义相同?
我知道输入1的位置是变量的条件部分,但在这个for循环中,我不相信它是无限循环.
我需要等待我async void完成.它有一些await Task.Delay功能,我需要它们继续之前完成.这个空格不会返回任何内容,所以我没有看到制作它的理由async Task<>,我也在这个空格内乱洗一个数组,我声明了一些变量.那我该怎么做呢?是async Task<>唯一的方法吗?我的空虚并不期待任何参数/输入.
我正在尝试使用电子表格工具和 Parallel.ForEach 生成一个 excel 文件,用于在单元格中写入,有时会出现空引用异常。我需要做任何设置或配置吗?
假设我有两个任务,具有以下要求:
我提出了以下代码,但它只是在两个任务开始后挂起(WaitAny函数永远不会返回).我在Run函数下也得到了一条波浪线,告诉我在其中添加await,但当我尝试在Task.WaitAny前面添加它时,VS会抱怨.我应该在另一个任务中包装WaitAny吗?我究竟做错了什么?
async void Run()
{
Task task1 = Task1();
Task task2 = Task2();
int completedTaskIdx = Task.WaitAny(task1, task2);
Debug.WriteLine("completedTaskIdx = {0}", completedTaskIdx.ToString());
}
async Task Task1()
{
Debug.WriteLine("Task 1 Start");
await Task.Delay(5000);
Debug.WriteLine("Task 1 Stop");
}
async Task Task2()
{
Debug.WriteLine("Task 2 Start");
await Task.Delay(10000);
Debug.WriteLine("Task 2 Stop");
}
Run Code Online (Sandbox Code Playgroud) 例如,我的输入是my name is abcd
我需要显示,正如dcba si eman ym
我在下面所做的那样,输出为abcd is name my
但不知道下一步该做什么
static void Main(string[] args)
{
Console.WriteLine("Enter a string: ");
string[] input = Console.ReadLine().Split(' ');
for (int i = input.Length-1; i >=0; i--)
{
Console.Write(input[i]+" ");
}
Console.ReadKey();
}
Run Code Online (Sandbox Code Playgroud) 我有如下列表.
名单
试图用linq转换为;
名单
如果没有for循环我怎么能这样做.我想用linq实现这个目标.
我的班级看起来像这样.
public class LogSettings
{
public string attributeName { get; set; }//TODO: change the variable name
public Warnings[] warnings = new Warnings[3];
}
public class Warnings
{
public string typeOfWarning {get; set;}
public bool isAbsolute { get; set; }
public decimal numUpDownValue { get; set; }
public LogSettingActions[] actionItems = new LogSettingActions[10];
}
public class LogSettingActions
{
public string actionItem{ get; set;}
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试创建Warnings实例时,它会抛出NullReference错误.
var rows = FindChilds<ctlLogConfigRow>(lvLogConfigTemplate);
foreach (var row in rows)
{
LogSettings instance = new LogSettings();
instance.attributeName …Run Code Online (Sandbox Code Playgroud) 我有一段简单的代码,没有达到我的预期.这段代码有什么问题?
int value1 = (int).5*100;
Run Code Online (Sandbox Code Playgroud)
这很容易,但通过我循环好一刻.当然,答案是微不足道的,已经知道了.但是,我认为有人思考可能会很有趣.
信用将给予第一个提出正确解决方案并解释原因的人.