小编c0r*_*0rd的帖子

返回Task <string>的方法

我需要一个返回Task<string>空字符串的方法

public static Task<string> AsyncTest()
{    
     return new Task<string>(() => string.Empty); //problem here

     // this method would work:
     // return new WebClient().DownloadStringTaskAsync(@"http://www.google.de");   
}

public static void Workdl(string input)
{
    Console.Write("OUT: " + input.Substring(0, 100));
}
Run Code Online (Sandbox Code Playgroud)

这个片段编译,但当我称之为

Task<string> dlTask = AsyncTest();
Workdl(await dlTask);
await Task.WhenAll(dlTask); //Task never completes 
Run Code Online (Sandbox Code Playgroud)

它永远不会决定.

c# task

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

使用索引将List <string>选择为Dictionary

我有一个清单

List<string> sList = new List<string>() { "a","b","c"};
Run Code Online (Sandbox Code Playgroud)

目前我正在选择以下结构为字典:

//(1,a)(2,b)(3,c)
Dictionary<int, string> dResult = new Dictionary<int, string>();
for(int i=0;i< sList.Count;i++)
{
    dResult.Add(i, sList[i]);
}
Run Code Online (Sandbox Code Playgroud)

但是对于Linq,我看到了一些更苗条的方式 ToDictionary((x,index) =>

如何在一行内解决正确的语法或如何解决?

c# dictionary list

9
推荐指数
2
解决办法
1639
查看次数

继承类的输出无效

我有2节课

[DataContract, KnownType(typeof(B))]
public class A
{
    [DataMember]
    public string prop1 { get; set; }
    [DataMember]
    public string prop2 { get; set; }
    [DataMember]
    public string prop3 { get; set; }
}

[DataContract]
public class B : A
{
    [DataMember]
    public string prop4 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

以及以下方法:

List<B> BList = new List<B>();
BList = new List<B>() { new B() { prop1 = "1", prop2 = "2", prop3 = "3", prop4 = "4" } };
List<A> AList = BList.Cast<A>().ToList(); …
Run Code Online (Sandbox Code Playgroud)

c# xml inheritance datacontractserializer

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

确定List.IndexOf忽略大小写

有没有办法通过不区分大小写的搜索来获取List中项目的索引?

List<string> sl = new List<string>() { "a","b","c"};
int result = sl.IndexOf("B"); // should be 1 instead of -1
Run Code Online (Sandbox Code Playgroud)

c# list

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

检查字符串是否已排序

我有一个简化的字符串,"12345"它被排序.字符串couild包含数字(0-9)或字母(az).在混合使用的情况下,自然排序顺序.我需要一种方法来验证这是否属实.

使用linq技术尝试:

string items1 = "2349"; //sorted
string items2 = "2476"; //not sorted, 6<>7

bool sorted1 = Enumerable.SequenceEqual(items1.OrderBy(x => x), items1); //true
bool sorted2 = Enumerable.SequenceEqual(items2.OrderBy(x => x), items2); //false
Run Code Online (Sandbox Code Playgroud)

但也可能有降序排序.

那么有更好的方法吗?

string items3 = "4321";
bool sorted3 = Enumerable.SequenceEqual(items3.OrderBy(x => x), items3) || Enumerable.SequenceEqual(items3.OrderByDescending(x => x), items3);
Run Code Online (Sandbox Code Playgroud)

检查字符串是否已排序?也许一些内置的解决方案?

.net c# linq sorting string

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

如何生成嵌套的 IEnumerable?

我知道如何在具有返回值的方法中产生值IENumerable

public IEnumerable<int> GetDigits()
{
    yield return 1;
    yield return 1;
    yield return 1;
}
Run Code Online (Sandbox Code Playgroud)

但是嵌套的正确语法是怎样的IEnumerable<IEnumerable<int>>

public IEnumerable<IEnumerable<int>> GetNestedDigits()
{
    yield return yield return 1; //??
}
Run Code Online (Sandbox Code Playgroud)

c# methods yield

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

使用StringBuilder重复一个字符串

我想重复.-40次并将其保存到string使用中StringBuilder

为什么这不起作用?

string result = new StringBuilder("").Append(".-",0,40).ToString();
Run Code Online (Sandbox Code Playgroud)

我知道其他解决方案,但我想使用StringBuilder

c# string stringbuilder

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