相关疑难解决方法(0)

比较2字节数组

我有2个int数组.

int[] data1 #
int[] data2 #
Run Code Online (Sandbox Code Playgroud)

我想创建第3个int [] data3,这是其他2个数组之间的差异.

让我们取data1中的第一个值.

值为15(例如).

现在让我们在data2中取第一个值.

值为3(例如).

data3中的第一个值为12.

但是,如果第一个值是相反的,即

data1[0]  = 3
data2[0]  = 15
Run Code Online (Sandbox Code Playgroud)

然后差异将是-12.但我希望它只有12岁.

目前我有一个for循环,我在那里做计算的东西来获得那种类型的结果.

  1. 有没有办法在不通过循环枚举的情况下执行data1-data2 = data3?
  2. 如果是这样,我可以在不使用减号的情况下获得差异吗?

谢谢

NB回应'关闭者'.我同意你的观点.我需要在这个问题上添加的是:

我正在寻找最有效(最快的方式,但低内存是第二优先)来促进这一点.使用Linq(据我所知)可能是最慢的方法?

c# arrays

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

内存问题的数组与列表

由于您需要在创建时输入数组的长度,我认为它需要一个可靠,连续的内存块.List可以动态扩展,这是否意味着它不需要连续的内存分配?这是否意味着List不太可能抛出"Out of Memory"异常?

c# arrays list

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

从父[]中检索所有子项

鉴于此类:

public class Parent
{
  public Child[] Children {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

这个数组:

Parent[] parents;
Run Code Online (Sandbox Code Playgroud)

如何使用Linq或其他方法从父数组中检索所有子项?这看起来很糟糕:

IList<Child> children = new List<Child>();
foreach(var parent in parents)
  children.AddRange(parent.Children);
Run Code Online (Sandbox Code Playgroud)

或者那不是那么糟糕?:-)

c# linq

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

从字符串中删除间距

我正在阅读两个文件,并比较它们和我意识到需要考虑的事情之一是删除间距,因为它导致差异,我不希望间距是差异的一个方面,所以我想删除它.

这是我到目前为止:

Dictionary<string, int> Comparer = new Dictionary<string, int>();
            string line;
            using (StreamReader sr = new StreamReader(openFileDialog1.FileName))
            {
                while (sr.Peek() >= 0 )
                {
                    line = sr.ReadLine();

                    if (Comparer.ContainsKey(line))
                        Comparer[line]++;
                    else
                        Comparer[line] = 1;
                }
            }

using (StreamReader sr = new StreamReader(openFileDialog2.FileName))
            {
                while (sr.Peek() >= 0)
                {
                    line = sr.ReadLine();
                    if (Comparer.ContainsKey(line))
                        Comparer[line]--;
                    else
                        Comparer[line] = -1;
                }
            }

            int mismatches = 0;

            var firstFileChanges = new List<string>();
            var secondFileChanges = new List<string>();

            System.Text.StringBuilder theStringBuilder = new System.Text.StringBuilder();
            foreach …
Run Code Online (Sandbox Code Playgroud)

c# linq winforms

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

标签 统计

c# ×4

arrays ×2

linq ×2

list ×1

winforms ×1