小编Omr*_*mri的帖子

如何对齐长文本?

我想将一对长文本与每个约20M的字符对齐.

我在过去使用Smith-Waterman算法但是(根据我的有限理解)它需要创建一个具有文本大小的二维数组(20M乘20M阵列) - 这是不实际的.

所以我正在寻找一种算法来对齐一对长文本,以保持实际的内存大小和执行时间.

UPDATE

我也试过Myers和Miller使用这个实现:https://www.codeproject.com/Articles/42279/Investigating-Myers-diff-algorithm-Part-of 但是我仍然没有内存异常"不是那么大"文本(1MB).

algorithm text-alignment sequence-alignment

8
推荐指数
0
解决办法
362
查看次数

从 c# 代码激活 conda 环境(或者手动打开 cmd 和从 c# 打开它有什么区别?)

我想使用 conda 环境 (dlwin36) 在 windows 上运行 gpu 加速的 python 脚本。

我正在尝试激活 dlwin36 并执行脚本:

1)激活dlwin36

2) 设置 KERAS_BACKEND=tensorflow

3) python myscript.py

如果我在我的机器上手动打开 cmd 并写入:“激活 dlwin36”,它就可以工作。

但是当我尝试从 c# 打开 cmd 时,我得到:

“激活不是内部或外部命令,也不是可运行的程序或批处理文件。”

我尝试使用以下方法:

命令链:

var start = new ProcessStartInfo();
start.FileName = "cmd.exe";
start.Arguments = "/c activate dlwin36&&set KERAS_BACKEND=tensorflow&&python myscript.py";
Process.Start(start).WaitForExit();
Run Code Online (Sandbox Code Playgroud)

(我已经测试了 UseShellExecute、LoadUserProfile 和 WorkingDirectory 的几种变体)

重定向标准输入:

var commandsList = new List<string>();
commandsList.Add("activate dlwin36");
commandsList.Add("set KERAS_BACKEND=tensorflow");
commandsList.Add("python myscript.py");

var start = new ProcessStartInfo();
start.FileName = "cmd.exe";
start.UseShellExecute = false;
start.RedirectStandardInput = true; …
Run Code Online (Sandbox Code Playgroud)

c# python windows cmd conda

6
推荐指数
2
解决办法
5009
查看次数

ServiceStack JsonSerializer没有序列化公共成员

我正在尝试使用ServiceStack.Redis,我注意到当我使用公共成员存储一个对象并尝试稍后获取它时,我得到null.

我检查并发现ServiceStack.Redis正在使用ServiceStack.JsonSerializer,所以我试图创建一个测试用例,我注意到ServiceStack.JsonSerializer没有序列化公共成员:

        public class ClassA
        {
            public string Id;

            public string Id2 { get; set; }
        }


        static void Main(string[] args)
        {
            ClassA t = new ClassA();
            t.Id = Guid.NewGuid().ToString("n");
            t.Id2 = Guid.NewGuid().ToString("n");

            string a = JsonSerializer.SerializeToString<ClassA>(t);

            ClassA t2 = JsonSerializer.DeserializeFromString<ClassA>(a);

            Console.WriteLine("id " + t2.Id);
            Console.WriteLine("id2 " + t2.Id2);

            Console.ReadLine();
        }
Run Code Online (Sandbox Code Playgroud)

正如您所看到的(如果您测试该代码),Id(公共成员)为null,Id2(公共属性)与我们输入的字符串相同.

那我在做错什么?

谢谢!

c# serialization json jsonserializer servicestack

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

ServiceStack JsonSerializer在继承时不会序列化对象成员

我正在尝试使用ServiceStack.Redis,我注意到当我存储一个对象的成员是从另一个对象继承的对象并尝试稍后获取它时,我得到null.

我查了一下,发现ServiceStack.Redis正在使用ServiceStack.JsonSerializer,所以我试图创建一个测试用例:

class Program
{
    public class ClassA
    {
        public string Id;

        public Dictionary<string, ClassB> dic = new Dictionary<string, ClassB>();
    }

    public class ClassB
    {
        public string Id;   
    }

    public class ClassC : ClassB
    {
        public object C;
    }

    public class ClassD
    {
        public string Id;
    }

    static void Main(string[] args)
    {
        ClassA t = new ClassA();
        t.Id = Guid.NewGuid().ToString("n");
        t.dic.Add("AAA", new ClassC());
        t.dic["AAA"].Id = Guid.NewGuid().ToString("n");
        ((ClassC)t.dic["AAA"]).C = new ClassD();
        ((ClassD)((ClassC)t.dic["AAA"]).C).Id = Guid.NewGuid().ToString("n");

        ServiceStack.Text.JsConfig.IncludeNullValues = true;
        ServiceStack.Text.JsConfig.IncludePublicFields = true;
        ServiceStack.Text.JsConfig.IncludeTypeInfo …
Run Code Online (Sandbox Code Playgroud)

c# serialization json jsonserializer servicestack

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