小编Ale*_*lex的帖子

如何从包含反斜杠的字符串中解析GUID?

我需要根据从Mailchimp 1.0导出api中获得的文本转储中的字符串等效项来创建guid。

guid是包含反斜杠\字符的所有字符串,例如,此处是(截断)其中之一:“ \” 9ffd2c3-6er456ds \“”

当我将guid传递给以下方法时,然后尝试时,将无任何作用Guid.TryParse

string[] values = sub.Split(',');
string rawguid = values[3];
var guid = rawguid.Replace("\\", "");
var tguid = rawguid.Trim();
var sguid = rawguid.Normalize().ToString();
Run Code Online (Sandbox Code Playgroud)

如何正确地将这些Guid字符串解析为Guid?

c#

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

当光标位于Winform中的图标上方时,如何使密码文本框的值可见

我正在winforms使用创建应用程序C#。现在,我想Icon在密码旁边加一个小眼睛,textbox以便当用户将鼠标悬停在时Icon,可以看到到目前为止输入的内容。因此,在悬停时,textbox应该显示,123并且当用户离开图标时,该框应***再次显示为。有什么办法做到这一点C#

c# textbox winforms

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

Asp .net Core:如何在 Razor Pages 的局部视图中使用模型?

无法对模型使用局部视图。

我创建了一个名为的新 WebApplication WebApplication1

我创建了一个名为TestPartialViewShared 文件夹内的局部视图。

TestPartialView.cshtml.cs文件中,我创建了一个名为的方法GetMyString(),它返回一个字符串。

@Model.GetMyString()TestPartialView.cshtml文件内部使用。

<partial name="TestPartialView" />_Layout页面下方的页面中包含了标签<partial name="_CookieConsentPartial" />

当我构建时,没有错误。

但是当我运行它时,它给出了一个错误:

InvalidOperationException:传递到 ViewDataDictionary 的模型项的类型为“WebApplication1.Pages.IndexModel”,但此 ViewDataDictionary 实例需要类型为“WebApplication1.Pages.Shared.TestPartialViewModel”的模型项。”

TestPartialView.cshtml

TestPartialView.cshtml.cs

_Layout.cshtml

c# .net-core razor-pages

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

获取范围内的所有数字(12300&gt; 12400)

试图找到一种方法来对范围内的每个数字执行操作C#。比方说,1230012400

尝试过:

IEnumerable<int> numbers = Enumerable.Range(12300, 12400);
Run Code Online (Sandbox Code Playgroud)

但这只给了我一个列表,该列表的12400开头是12300

c# numbers range

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

为什么递归函数返回意外结果?

我的程序是:

var maze = MazeFactory.FromPattern(Patterns.Maze3, Patterns.WallSymbol);
var a = maze.GetElementAt(0, 1);
var b = maze.GetElementAt(12, 0);

var printer = new PathPrinter(ConsoleColor.Yellow, ConsoleColor.Gray, ConsoleColor.Black);

Console.WriteLine("Maze");
printer.Print(maze, Path.Empty, Console.CursorLeft, Console.CursorTop);

var ab = new PathFinder(maze, a, b).GetPaths();
var abPath = ab.OrderBy(p => p.Elements.Count()).First();
Console.WriteLine("A -> B");
printer.Print(maze, abPath, Console.CursorLeft, Console.CursorTop);

var ba = new PathFinder(maze, b, a).GetPaths();
var baPath = ba.OrderBy(p => p.Elements.Count()).First();
Console.WriteLine("B -> A");
printer.Print(maze, baPath, Console.CursorLeft, Console.CursorTop);
Run Code Online (Sandbox Code Playgroud)

输出为:

程序输出

我希望PathFinder.GetPaths()返回一个Paths 的集合,以便我可以选择最短的一个,但是该集合仅包含一个元素。

欢迎回答任何问题。

  • 这是为什么?
  • 为什么“ a到b”的路径与“ b到a”的路径不同? …

c# recursion

0
推荐指数
1
解决办法
152
查看次数

使用LINQ从数组创建对象的更快方法?

我有CSV要转换为User对象的值列表。我已经通过foreach循环做到了这一点,但想知道是否有LINQ一种更有效的方式来做到这一点?我已经尝试过结合使用Select和,Where但是似乎找不到适合于我的情况的方法。

User.cs:

public class User
{
    public string FirstName {get; set;}
    public string LastName { get; set; }
    public string Password { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

目前的做法:

var lines = File.ReadAllLines(filepath).Select(x => x.Split(';'));

var users = new List<User>();

foreach (var line in lines)
{
    var user = new User
    {
        FirstName = line[0],
        LastName = line[1],
        Password = line[2]
    };

    users.Append(user);
}
Run Code Online (Sandbox Code Playgroud)

c# linq

0
推荐指数
1
解决办法
74
查看次数

变量已分配但从未使用其值

编码:

int num01;
num01 = 20; 
Run Code Online (Sandbox Code Playgroud)

给出:

警告 CS0219 变量 'num01' 已分配,但从未使用其值

c#

0
推荐指数
1
解决办法
3218
查看次数

Sequence numbers and Precision issues

I have a sequence number which dictates the order things are done in, for example, a person scans items 1 - 15 then inside those items there is sub-components which I was going use decimal precision as I will no the whole number 15 and add a precision value on it to become 15.1

using System;

public class Program
{
    public static void Main()
    {
        decimal sequenceNumber = 15;

        for (int i = 0; i < 10 ; i++)
        { …
Run Code Online (Sandbox Code Playgroud)

c#

-1
推荐指数
1
解决办法
52
查看次数

使 using 语句可用于多个一次性对象

我在一个文件夹中有一堆文本文件,它们都应该有相同的标题。换句话说,所有文件的前 100 行应该是相同的。所以我写了一个函数来检查这个条件:

private static bool CheckHeaders(string folderPath, int headersCount)
{
    var enumerators = Directory.EnumerateFiles(folderPath)
        .Select(f => File.ReadLines(f).GetEnumerator())
        .ToArray();
    //using (enumerators)
    //{
        for (int i = 0; i < headersCount; i++)
        {
            foreach (var e in enumerators)
            {
                if (!e.MoveNext()) return false;
            }
            var values = enumerators.Select(e => e.Current);
            if (values.Distinct().Count() > 1) return false;
        }
        return true;
    //}
}
Run Code Online (Sandbox Code Playgroud)

我使用枚举器的原因是内存效率。我没有在内存中加载所有文件内容,而是逐行同时枚举文件,直到发现不匹配,或者检查了所有标题。

注释的代码行很明显我的问题。我想利用一个using块来安全地处理所有枚举器,但不幸的using (enumerators)是不能编译。显然using只能处理一个一次性物品。我知道我可以通过将整个事物包装在一个try-finally块中并最终在内部循环中运行处理逻辑来手动处理枚举器,但这似乎很尴尬。using在这种情况下,是否有任何机制可以使该语句成为可行的选择?


更新

我刚刚意识到我的函数有一个严重的缺陷。枚举器的构造并不稳健。锁定的文件可能会导致异常,而某些枚举器已被创建。这些枚举器不会被处理。这是我想要解决的问题。我在想这样的事情:

var enumerators = Directory.EnumerateFiles(folderPath)
    .ToDisposables(f …
Run Code Online (Sandbox Code Playgroud)

.net c# dispose enumeration

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