小编Fre*_*red的帖子

我应该返回空或可空数组吗?

我有一个搜索图像的公共方法,如果图像存在,则将其作为字节数组返回.

如果图像不存在,该方法应该返回什么?(不存在的图像不是例外,但预期的可能性)

我应该返回一个空byte[]数组,还是应该返回byte?[]设置为null?

哪一个更符合惯例?

c# arrays

5
推荐指数
1
解决办法
3393
查看次数

在字节数组中查找模式的最有效方法

我有以下代码:

var file = //Memory stream with a file in it
var bytes = file.ToArray();
Run Code Online (Sandbox Code Playgroud)

我需要搜索bytes指定字节序列的第一次出现(如果有的话):0xff, 0xd8。(这样做的目的是找到嵌入在文件中的图像)

因此,如果例如bytes[6501]contains0xffbytes[6502] contains 0xd8,那是一个匹配项,我需要返回的位置的索引(6501),或者一个新数组,它是字节数组的副本,除非它没有低于 6501 的键来自旧数组。

我目前的解决方案是循环:

 for (var index = 0; index < bytes.Length; index++)
 {
     if((new byte[] {0xff, 0xd8}).SequenceEqual(bytes.Skip(index).Take(2))
    ...
Run Code Online (Sandbox Code Playgroud)

但是在处理更大的文件时它非常慢。

有没有更有效的方法来处理这个问题?

.net c# .net-4.5

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

如何将图片合并到 WriteableBitmap 中?

我有一个像这样的位图:

var map = new WriteableBitmap(800,800,800,800, PixelFormats.Bgr32,null);
Run Code Online (Sandbox Code Playgroud)

然后我有一个 50x50 png 图片,我想将其合并到此位图(包括透明度)中,位置偏移量为 top 100 left 150(从位图的左上角开始)

var img = new BitmapImage(new Uri(@"D:\test.png", UriKind.Absolute));
Run Code Online (Sandbox Code Playgroud)

我尝试过类似的事情 map.WritePixels(img);,但这只会引发错误。如何将此图像合并到位图中?

.net c# wpf

5
推荐指数
1
解决办法
2046
查看次数

如何在类实例中调用常用函数?

假设我有两个类:

class Batman
{
    public void Robin(){...}
    public void Jump(){...}
}

class Superman
{
    public void Kryptonie(){...}
    public void Jump(){...}
}
Run Code Online (Sandbox Code Playgroud)

现在,我有一个这样的类的实例:

public object Crossover()
{
     var batman = new Batman();
     var superman = new Superman();

     return superman;
}
Run Code Online (Sandbox Code Playgroud)

我不知道Crossover将返回哪个类的实例,它可能是蝙蝠侠或超人.

var someVariableName = Crossover(); //I don't know if this contains an instance of Superman or Batman;

//I do know that no matter which class instance is returned, it will always contain a function named Jump which i want to trigger: …
Run Code Online (Sandbox Code Playgroud)

c#

4
推荐指数
1
解决办法
549
查看次数

如何在system.data.sqlite中转义字符串?

我正在执行一个SQL查询(system.data.SQLite),如下所示:

var color = "red";
var command = new SQLiteCommand("SELECT something FROM tabletop WHERE color = '" + color + "'", Connection);
var reader = command.ExecuteReader();
Run Code Online (Sandbox Code Playgroud)

颜色变量是用户提供的文本.如何逃避此文本以防止SQL注入?或者这是一种不好的做法,我应该以一种完全不同的"受保护"方式执行查询?

c# sqlite system.data.sqlite .net-4.5

2
推荐指数
1
解决办法
2962
查看次数

标签 统计

c# ×5

.net ×2

.net-4.5 ×2

arrays ×1

sqlite ×1

system.data.sqlite ×1

wpf ×1