小编Dmi*_*nko的帖子

将h:m:s和m:s字符串转换为TimeSpan对象的简单方法是什么?

我正在尝试将时间戳字符串转换为TimeSpan对象.但是,TimeSpan.Parse()不能像我期望的那样工作.我会解释原因.

我想转换两种类型的时间戳.

  1. 分:秒
    例如30:53,1:23,0:05
  2. 小时:分钟:秒
    例如1:30:53,2:1:23,0:0:3

问题是,类型1在TimeSpan.Parse()方法中被解释为小时:分钟格式.

Console.WriteLine(TimeSpan.Parse("12:43"));
// the result I expect -> 0:12:43
// the actual result -> 12:43:00
Run Code Online (Sandbox Code Playgroud)

我搜索了这个问题并发现了这个SO帖子.
将HH.mm格式的字符串解析为TimeSpan

这用于DateTime.ParseExact()以特定格式解析字符串.但是,问题是我需要为类型1和2使用不同的格式.

// ok
var ts1 = DateTime.ParseExact("7:33", "m:s", CultureInfo.InvariantCulture).TimeOfDay;
// throws an exception
var ts2 = DateTime.ParseExact("1:7:33", "m:s", CultureInfo.InvariantCulture).TimeOfDay;
// throws an exception
var ts3 = DateTime.ParseExact("7:33", "h:m:s", CultureInfo.InvariantCulture).TimeOfDay;
// ok
var ts4 = DateTime.ParseExact("1:7:33", "h:m:s", CultureInfo.InvariantCulture).TimeOfDay;
Run Code Online (Sandbox Code Playgroud)

我也查了MSDN,但没用.
https://msdn.microsoft.com/ja-jp/library/se73z7b9(v=vs.110).aspx …

c# datetime

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

在没有第一个的情况下反转数组中的所有单词

我试图让以下代码工作,所以如果

输入是:你好吗?

输出应该是:

eud怎么样?

我认为我非常接近完成它但我无法理解为什么,正则表达式不起作用它不被识别.这是repl:https://repl.it/MHzu/1

using System.Collections.Generic;
using System.Linq;
using System;
using System.Text.RegularExpressions;

public class Kata
{    
   static void Main(string[] args)
    {
          string str = Console.ReadLine();            
          string opaa = str;
          Match m = Regex.match(str,"(\w*) (\w.*)");
          string hoho = m.Groups[1];
          string strrev = "";
          foreach (var word in opaa.Split(' '))
          {
              string temp = " ";
              foreach (var ch in word.ToCharArray())
              {
                 temp = ch + temp;
              }
              strrev = strrev + temp + "";
          }
          Console.WriteLine(hohoo + …
Run Code Online (Sandbox Code Playgroud)

.net c# regex

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

如何在列表中获取属性的乘法?

假设我List<T>有一个名为Oddstype 的属性decimal,我怎样才能得到金额的乘法

通常为了精心制作,Sum我做了类似这样的事情:

decimal amount = myList.Sum(x => x.Odds);
Run Code Online (Sandbox Code Playgroud)

但是我找不到允许我得到乘法的任何属性.linq不可能吗?

谢谢.

c# linq

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

从字符串的第二行开始 - 从 - 到

我需要从第二行string开始'\r'直到下一个'\r'字符.

这是我的字符串中的一个考试

string str = "@b\r210.190\r\000.000\r\n";
Run Code Online (Sandbox Code Playgroud)

我需要取值210.190但内部没有 '\r'字符.

c# string

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

编程挑战:最好的猫的竞争即将来临

最近我参加了编码挑战,我的得分只有50%.很少有测试用例执行我的代码失败,我无法找到代码失败的原因.所以我在下面添加了问题和我的代码.我很感谢您帮助找到测试失败原因.

需求

最好的猫的竞争即将来临.比赛由几场决斗组成.在每次决斗中,两只猫都站在一条彼此面对的无限线上.年长的猫开始 - 它必须以1或2个猫单位向对手移动.他们俩都不能回去,跳过他的对手或分享同一个位置.猫主人尽可能地训练他们的猫,因此他们的宠物可以最佳地进行游戏.无法移动的猫会失去.

输入

输入的第一行包含测试次数t(t≤1000).每个测试由4个整数组成:第一只猫的年龄和位置,然后是第二只猫的年龄和位置.没有两只猫有相同的年龄.此任务中的任何计算都不会超过该数字2**31 - 1.

产量

对于每个测试打印1,如果第一只猫获胜,否则为0.

输入:

1
10 1 9 5
Run Code Online (Sandbox Code Playgroud)

输出:

0
Run Code Online (Sandbox Code Playgroud)

说明: Cat 1可以移动到任何一个字段23.在接下来的动作中,2无论对手的决定能否阻挡他并赢得胜利.

我的守则

using System;
using System.Linq;

namespace Solution
{
    class Solution
    {
        static void Main(string[] args)
        {
            var input1 = Console.ReadLine().Trim();
            var numOfTest = Convert.ToInt32(input1);

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

c# algorithm

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

如何初始化二维数组内的对象?

我有一个二维数组

BoardTile tiles[,];
Run Code Online (Sandbox Code Playgroud)

然后Init(Point size)设置它的大小:

tiles = new BoardTile[size.X, size.Y];
Run Code Online (Sandbox Code Playgroud)

以及如何初始化所有这些元素,因为它不使用默认BoardTile()构造函数。它只是分配null

foreach(BoardTile t in tiles) t = new BoardTile()

不起作用。当我尝试打电话时

foreach(BoardTile t in tiles) t.anything()
Run Code Online (Sandbox Code Playgroud)

我懂了NullReferenceException

c# multidimensional-array

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

创建一个字典,键代表列表中的元素

我想创建一个DictionaryKeys的代表来自一个元素List。每个列表元素都必须出现在这个字典中。

示例:
一部电影有一个演员列表。

现在我想要一个演员出演的电影列表。如果电影有多个演员,每个演员都应该在自己的列表中列出这部电影。

我有一个这样的数据结构:

public class MovieData
{
    public List<string> Actors { get; set;}
    public string Title { get; set; }
    public DateTime ReleaseDate { get; set; }
    public string FilePath { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

一个小例子来说明这一点:

var movie1 = new MovieData { 
  Title  = "Movie1", 
  Actors = new List<string> { "Bob Smith", "Alice Stevens"}};

var movie2 = new MovieData { 
  Title  = "Movie2", 
  Actors = new List<string> { "Alice Stevens"}}; …
Run Code Online (Sandbox Code Playgroud)

c# linq

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

如何从列表中取出每个元素并将其推入堆栈?

string filePath = @"C:\Users\Me\Desktop\Palindromes\palindromes.txt";

List<string> lines = File.ReadAllLines(filePath).ToList();
var meStack = new Stack<string>();

for (int i = 0; i < lines.Count; i++)
{
    string pali;
    pali = lines.RemoveAt(i);
    meStack.Push(pali[i]);
}
Run Code Online (Sandbox Code Playgroud)

基本上我需要将Remove每个元素(在 txt 中有40行)从list,然后Push 每个元素放到stack.

c# stack push list

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

拆分逗号分隔的字符串并在 C# 中添加引号 - 优雅的解决方案

我有一个string这样的:

var v = "10,14,18,21" 
Run Code Online (Sandbox Code Playgroud)

并希望将其用作如下所示的内容:

'10', '14', '18', '21'
Run Code Online (Sandbox Code Playgroud)

我写了一个函数,它用逗号分割值并将它们作为字符串加在一起。此外,我,从结果字符串中删除了最后一个。

我把所有东西都放在一个叫做prep测试的函数中。

功能,我想要它做什么。但是,我想知道是否有更优雅的方法来实现相同的结果。这是我想出的:

public static string prep(string s) {
    string res = "";

    List<string> list = s.Split(',').ToList<string>();

    foreach(var item in list) 
        res += "'" + item + "',";

    res = res.TrimEnd(',');

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

c# string

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

需要将字符串解析为 mm:ss 而不是 hh:mm

我需要转换一个stringmm:ss(examples - "6:12", "59:59", "6:6") 并将它们总结在hh:mm:ss格式化的值。

目前我正在尝试做一件简单的事情,但它向我抛出了这个异常

“System.FormatException: '输入字符串的格式不正确。'”

下面是代码示例:

string time = "6:14";
TimeSpan ts = TimeSpan.ParseExact(time, "mm:ss", null);
string total = ts.ToString("hh:mm:ss");
Run Code Online (Sandbox Code Playgroud)

c# datetime-format

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