小编Dmi*_*nko的帖子

c#中不同类型实例化的区别

我想知道这两个实例化之间的区别

interface ITest
{
    int TotalMarks(int englishMarks, int mathematicsMarks);
}

class TestClass : ITest
{
    public int TotalMarks(int engMarks, int mathMarks)
    {
        return engMarks + mathMarks;
    }
}

class Program
{
    static void Main(string[] args)
    {
        TestClass c = new TestClass();
        Console.Write(c.TotalMarks(10, 20));
        Console.Write("\n");

        ITest c1 = new TestClass();
        Console.Write(c1.TotalMarks(21, 34));

        Console.ReadKey();
    }
}
Run Code Online (Sandbox Code Playgroud)
  • TestClass c = new TestClass();
  • ITest c1 = new TestClass();

    他们都按预期工作并给出结果.这两个如何不同以及何时使用哪个?

.net c#

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

如何使用 LINQ 将数组转换为字典

我有一个字符串数组,我想Dictionary使用Linq将其转换为 a 。我想和一个元件偶数索引(包括零)是与和元件奇数索引在字典中。我使用以下方法创建了一个字典for loop

string[] arr = new string[4];
arr[0] = "John";
arr[1] = "A";
arr[2] = "Luke";
arr[3] = "B";

Dictionary<string, string> myDict = new Dictionary<string, string>();

for (int i = 0; i < arr.Length - 1; i += 2)
{
    myDict.Add(arr[i], arr[i + 1]);
}

//myDict -> { { "John", "A" },{"Luke","B"} }
Run Code Online (Sandbox Code Playgroud)

现在我很好奇如何用LINQ 做到这一点ToDictionary()

myDict = arr.ToDictionary();
Run Code Online (Sandbox Code Playgroud)

c# linq arrays dictionary

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

将动态对象转换为 .NET C# 中的具体对象

正如你从标题中看到的,我需要转换这个对象:

    object obj = new{
       Id = 1,
       Name = "Patrick"
    };
Run Code Online (Sandbox Code Playgroud)

到特定的类实例。

为了更清楚,这里有一个例子给你们:

    public class Student
    {
        public int Id { get; set; }
        public string Name { get; set; }

    }

    public class Scholar
    {
        public int UniqueId { get; set; }
        public string FullName { get; set; }

    }
Run Code Online (Sandbox Code Playgroud)

我有两个班级StudentScholar。我无法找到一种正确编写转换为特定类型的算法的方法。

在我看来,伪代码应该是这样的:

if (obj.CanBeConverted<Student>()) {
   //should return this if statement

   obj = ConvertToType<Student>(o);

   // after this method obj type should change to Student
} …
Run Code Online (Sandbox Code Playgroud)

c# reflection dynamic object

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

Linq获取句子中的单词

我有一个单词表和一个句子表。我想知道哪些可以在其中找到句子

这是我的代码:

List<string> sentences = new List<string>();
List<string> words = new List<string>();

sentences.Add("Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur.");
sentences.Add("Alea iacta est.");
sentences.Add("Libenter homines id, quod volunt, credunt.");

words.Add("est");
words.Add("homines");

List<string> myResults = sentences
  .Where(sentence => words
     .Any(word => sentence.Contains(word)))
  .ToList();
Run Code Online (Sandbox Code Playgroud)

我需要的是元组列表。在句子中找到单词和单词。

c# linq string

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

从文本文件(C#)中的匹配单词后打印行

我正在从一个基本上像这样的文本文件中读取内容:

>Name
>12345

>Name2
>32458

>Name3
>82745
Run Code Online (Sandbox Code Playgroud)

等等。我想要它,所以一旦程序检测到NameName,将12345在控制台上同时打印以下内容:

到目前为止,这是我的代码:

if (args[0] == "prog1")
{
    List<string> lines = File.ReadAllLines(filename).ToList();

        foreach (var line in lines)
        {
            if (line.Contains("Name"))
            {
                Console.WriteLine(line);
            }
        }
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,这仅会打印"Name"到控制台,我不确定如何使它也能在它之后打印

c#

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

资本化的排列

我想建立一个列表,其中包含一个单词大写的每个可能的排列.所以它会

List<string> permutate(string word)
{
    List<string> ret = new List<string>();
    MAGIC HAPPENS HERE
    return ret;
}
Run Code Online (Sandbox Code Playgroud)

所以说我放入"快乐"我应该得到一个阵列

{快乐,快乐,快乐,快乐,haPpy,HaPpy ......哈欠,哈普,快乐,快乐}

我知道有很多函数可以将第一个字母大写,但是如何在单词中做任意字母?

.net c# string capitalization

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

如何基于百分比随机选择

我有一大堆的项目比范围的大小1-10

我想根据物件的百分比或机会确定该物件的大小。

例如:

物品成为大小的 机会1 = 50% 机会

物品成为大小的 机会5 = 20% 机会

物品成为大小的 机会10 = 5% 机会

我知道我当然需要为此使用Random发电机。

但是只是想知道你们中的某些人将如何使用C#进行逻辑处理?

c# random

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

在多个嵌套列表中提取第一个元素的正确方法

我从soap服务获取数据,并想知道在嵌套列表中提取第一个元素的正确方法

我遇到的问题的例子

 tempModel.Value = req.Data
   .FirstOrDefault()
   .Readings
   .FirstOrDefault()
   .Extract
   .FirstOrDefault()
   .Values
   .FirstOrDefault()
   .Reading;
Run Code Online (Sandbox Code Playgroud)

事情是服务返回元素列表,我需要提取多个嵌套层中的每个内部的第一个元素.

如果有任何列表,这里的代码将给我异常.null

我知道我可以尝试捕获,但我有五个这些元素,我想填充视图模型.我正在努力寻找这个问题的干净解决方案,因为我理解我怎么能以"丑陋的方式"来做到这一点.

任何指针都将非常感激.

c#

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

有C#等同于Python的chr和ord吗?

我目前正在学习C#,想知道C#是否具有与和等效的功能chrord

c# python char

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

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

我有一个二维数组

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
查看次数