小编Sim*_*Cat的帖子

写入流就像它是一个文件,但真正写入一个对象

我正在尝试将流写入ram而不是文件.我试过这样做:

Stream stream = new MemoryStream();
BinaryFormatter bFormatter = new BinaryFormatter();
bFormatter.Serialize(stream, objectToSerialize);
stream.Close();
return stream;
Run Code Online (Sandbox Code Playgroud)

但是当我在写完它之后查看流时,它会说"Length ='stream.Length'抛出了'System.ObjectDisposedException'类型的异常"

c# memorystream stream

5
推荐指数
2
解决办法
2801
查看次数

CheckedListBox Action ItemCheck 删除项目?

当取消选中选中的框时,我想删除该项目。问题是检查/取消检查似乎是在调用 ItemCheck 方法之后发生的。因此,当我删除一个弄乱 e.Index 的项目时,它会在我删除的项目之后检查/取消选中该项目,或者如果它是最后一个项目,则会抛出错误。

我发现了这个:Getting the ListView ItemCheck to stop! 其中有重置 e.NewValue 的提示,该部分可以正常工作,但当我删除最后一项时,它仍然会引发错误。

我没有简单地使用其中一个鼠标事件的原因是我希望键盘导航仍然可以以防万一。

这是我现在的代码。

private void checked_ItemCheck(object sender, ItemCheckEventArgs e)
        {
            if (e.NewValue == CheckState.Unchecked)
            {
                checked.Items.RemoveAt(e.Index);
                e.NewValue = CheckState.Checked;
            }
        }
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助

c# checkedlistbox winforms

3
推荐指数
1
解决办法
3984
查看次数

Linux命令为目录中的所有文件提供文件扩展名

我想出了这个:

for i in *; 
do input=`echo $i|sed -e 's/[ ]/\\\ /g'`; 
output=`echo $input".mp3"`; 
mv $input $output; done
Run Code Online (Sandbox Code Playgroud)

它非常接近,但它抱怨:

mv:无效选项 - '\'

我不太明白为什么它不起作用如果我尝试回显$ input或$ output他们似乎都正确地逃避了文件名中的所有空格而已.

linux bash

3
推荐指数
1
解决办法
698
查看次数

我怎样才能看到MSIL代码

我尝试使用谷歌搜索和搜索StackOverFlow,但我没有看到明确的答案.如何查看我的C#编译成的IL代码?我想比较两种方法,看看它们是否产生相同的IL.我看过这个看过IL代码的人的视频真的非常精彩,但是我忘记了他用来看它的工具.我似乎记得那个人有一个树视图,在那里他可以环顾内存中的不同物体.我知道他没有使用Visual Studio.

c# clr

3
推荐指数
1
解决办法
1178
查看次数

当Linq比Foreach更快时,情况确实如此

如果你的搜索是Linq更快的Foreach答案总是不是一个foreach是.我还发现了另一个stackoverflow问题,问题提问者没有做过"热身",所以我在我的代码中加入了"热身".

我的代码示例由于某种原因没有像我预期的那样行事.我在想我做的是让无linq路径循环两次 - 第一次和总和一次.其中linq示例在它结束时仅在结尾处循环一次.你怎么看?我的测试是否存在缺陷,或者这是linq实际上为我们带来了良好的性能提升的情况?

    public class NumberObject { public Int32 Number { get; set; } }

    public IEnumerable<NumberObject> GetNumbersWithoutLambda()
    {
        IEnumerable<Int32> numberRange = Enumerable.Range(0,10);
        List<NumberObject> numberList = new List<NumberObject>();
        foreach (Int32 item in numberRange)
        {
            numberList.Add(new NumberObject() { Number = item });
        }
        return numberList;
    }

    public IEnumerable<NumberObject> GetNumbersWithLambda()
    {
        IEnumerable<Int32> numberRange = Enumerable.Range(0, 10);
        IEnumerable<NumberObject> numbers = numberRange.
            Select(number => new NumberObject() { Number = number });
        return numbers;
    }

    private void runGetNumbers(Func<IEnumerable<NumberObject>> getNumbersFunction, Int32 numberOfTimesToRun)
    { …
Run Code Online (Sandbox Code Playgroud)

c# linq foreach

1
推荐指数
3
解决办法
4477
查看次数

标签 统计

c# ×4

bash ×1

checkedlistbox ×1

clr ×1

foreach ×1

linq ×1

linux ×1

memorystream ×1

stream ×1

winforms ×1