小编Dmi*_*nko的帖子

按可除数将一个列表分成多个列表

我正在研究一种动态解决方案,其中我需要根据传入的变量将一个大列表分成x个列表。

因为我正在使用的类非常复杂,所以为了获得最小的可复制问题,我选择了下面的代码来代表我的问题100%。

我面临的问题是下面的代码被0除的问题。

当我改变面对其他问题if (j % i == 0),以if (j % 3 == 0)我得到的结果"1", "4", "7"

当我看着从if列表中的列表中删除一项时,上面的变化我得到了

3个新列表,原始列表中剩余3个项目。

1 5 5

2 7

3

4 6 8

void Main()
{
var listsToSplit = 3;

var l = new List<string>(){
    "1", "2", "3", "4", "5", "6", "7", "8",
    "9"
};

var dict = new Dictionary<int, List<string>>();

for (var i = 0; i < listsToSplit; i++)
{
    for (var j = 0; j < l.Count; j++) …
Run Code Online (Sandbox Code Playgroud)

c#

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

如何跳过字符串之间的字符?

我对正则表达式非常陌生,我需要从之间包含的字符串中获取特定值 ' '

使用正则表达式能够获取值,但是'在两者之间有三分之一时会获得异常 ' '

可变规则包含整个字符串

IEnumerable<string> possibleValues = Regex
    .Matches(rule, @"'(?<val>.*?)'")
    .Cast<System.Text.RegularExpressions.Match>()
    .Select(match => match.Groups["val"].Value)
    .ToArray();   
Run Code Online (Sandbox Code Playgroud)

传递以下字符串时

规则:“街道地址”
必须为“班德拉(西)班德圣安德鲁路4楼萨米尔综合楼”(默认值)

期望的值是班德拉(西)圣安德鲁路4楼的Street AddressSamir Complex。

但是在圣安德鲁4楼获得街道地址Samir Complex

c# regex linq

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

如何解决此for循环冻结我的程序

我的目标是循环通过List<weatherForecast> weatherList,看它是否包含特定值。但是,每次我运行该程序时,它都会冻结

通过注释掉循环的各个部分,似乎除了之外的所有其他东西都在foreach loop工作,但是我foreach在程序的其他部分使用了几乎与此相同的语句,并且它们工作正常。

Boolean flag;

for (DateTime day1 = DateTime.Parse(sDate); day1 <= DateTime.Parse(eDate); day1.AddDays(1))
{
    flag = false;

    foreach (WeatherForecast w in weatherList)
    {
        if (selected.Contains(w.City) && w.getDay().CompareTo(day1) == 0)
        {
            flag = true;
        }
    }

    if (!flag)
    {
        day1 = DateTime.Parse(eDate).AddDays(1);

        MessageBox.Show("Some of the dates in the range you selected do not have weather data. \nDefault data will be used,but you can enter the data manually.", "Missing Data", …
Run Code Online (Sandbox Code Playgroud)

c# loops

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

在转换为数字类型之前将字符串取整

我有一个数字(仅举一个例子:

"3616,946489653802082229919075063226"
Run Code Online (Sandbox Code Playgroud)

存储在中string。我想将其转换为,decimal但得到OverflowException,因为该值对于十进制而言太长。

我想string转换之前修正错误

我该怎么做呢?

c# string

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

如何用空格字符代替数字字符?

我想用空格字符替换字符串中的每个非数字字符

例如: "123X456Y78W9" -> "123 456 78 9"

我得出的唯一解决方案是:

string input = "123X456Y78W9";
string output = "";

foreach (char c in input)
    if (c in (1, 2, 3, 4, 5, 6, 7, 8, 9, 0))
        output += c;
    else
        output += ' ';
Run Code Online (Sandbox Code Playgroud)

有没有更简单的解决方案?

c# string algorithm

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

无法解析日期时间格式

我似乎无法解析日期时间,例如,

"7/10/2019 2:52:52 PM".
Run Code Online (Sandbox Code Playgroud)

无论我添加哪种格式都行不通。这是我的代码:

public static DateTime? ToInternal(string source)
{
    if (!DateTime.TryParseExact(
           source,
           PUBLIC_INPUT_FORMAT_STRING,
           System.Globalization.CultureInfo.InvariantCulture,
           System.Globalization.DateTimeStyles.None,
           out DateTime date))
    {
        return null;
    }
    else
    {
        return date;
    }
}

public static string[] PUBLIC_INPUT_FORMAT_STRING =
{
    "yyyy-MM-dd", "dd/M/yyyy", "d/M/yyyy", "d/MM/yyyy",
    "dd/MM/yy", "dd/M/yy", "d/M/yy", "d/MM/yy","yyyy/MM/dd",
    "yyyy-MM-dd HH:mm tt","yyyy'-'MM'-'dd'T'HH':'mm':'ss", 
    "dd/M/yyyy HH:mm:ss tt", "d/MM/yyyy H:mm:ss tt",
    "d/M/yyyy HH:mm:ss", "d/MM/yyyy HH:mm:ss","dd/MM/yyyy HH:mm:ss"
};
Run Code Online (Sandbox Code Playgroud)

c# datetime parsing

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

在C#文本框中禁止空格

我正在构建Windows Forms应用程序,并希望禁止用户将空格和其他空格输入TextBox。在发送带有“您输入了空格”之类的消息的表格后,我不想检查它。我不想使用此:

    protected override void OnKeyDown(KeyEventArgs e)
Run Code Online (Sandbox Code Playgroud)

因为我必须将按下的键与所有可能的空格进行比较。有什么方法可以将设置TextBox为仅接受不是空格的字符

c# winforms

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

在不使用shift的情况下向左旋转数组

我能得到我的数组排序的权利,但是,挣扎着爬向左旋转,例如工作[1, 2, 3, 4, 5, 6, 7, 8],如果向左旋转4空格[4, 5, 6, 7, 8, 1, 2, 3]我觉得这是超级简单,只是一个小的变化,以我目前的右旋转,但是,我”我陷入了困境。

if (direction == "right")
            {
                {
                    //make spaces<nums.Length
                    if (spaces > newArray.Length)
                    {
                        while (spaces - newArray.Length >= 0)
                        {
                            spaces = spaces - newArray.Length;
                        }
                    }

                    if (spaces == 0)
                    {

                    }
                    else
                    {
                        int[] temp = new int[spaces];

                        //move to a temp array
                        for (var i = temp.Length - 1; i >= 0; …
Run Code Online (Sandbox Code Playgroud)

c# arrays

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

删除元组列表中的重复项和求和值

我有一个带元组的列表,其中包含两个字符串和一个int:

List<Tuple<string, string, int>> peopleList = new List<Tuple<string, string, int>>();
Run Code Online (Sandbox Code Playgroud)

该元组从查找到数据库,并使用带有名称,数字和整数列表的DataReader进行填充。

我想从列表中删除重复项并计算出整数。

我已经根据属性和重复项的总和查看了这个List Distinct条目 -这与我想要的最相似,但是我正在使用元组并努力了解如何删除重复项并正确添加数字。

var group = peopleList.GroupBy(x => x)
.Select(x => new { Name = x.Key.Item1, No = x.Key.Item2, Sum = x.Sum(g => g.Item3) });
Run Code Online (Sandbox Code Playgroud)

我希望得到一个包含所有人员及其对应的计数总和的列表。

所以:

James, 12, 5
Jerry, 15, 2
James, 12, 10
Helen, 87, 8
Jerry, 15, 8
Run Code Online (Sandbox Code Playgroud)

成为:

James, 12, 15
Jerry, 15, 10
Helen, 87, 8
Run Code Online (Sandbox Code Playgroud)

c# linq tuples list

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

用正则表达式替换为十进制小数货币

我需要将输入货币(不带小数位)的格式设置为标准方式(如$XXX,XXX,XXX,XXX)。用户可以输入以下任何内容:

  1. $123
  2. $123,123
  3. $1,123,123
  4. 123,123
  5. 12,123,123
  6. 12312312
  7. 123
  8. $12123123

我已经写了一篇文章Regex,我可以通过该文章找到所需的模式-> ^\$?[0-9]{1,3}(?:(,[0-9]{3})*|([0-9]{3})*)?$但我不明白如何编写替代代码格式化上述示例以进行$XXX,XXX,XXX,XXX...格式化(因为没有固定的组可以选择)。

c# regex formatting currency

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

标签 统计

c# ×10

linq ×2

regex ×2

string ×2

algorithm ×1

arrays ×1

currency ×1

datetime ×1

formatting ×1

list ×1

loops ×1

parsing ×1

tuples ×1

winforms ×1