C# 仅复制到第二个数组
我试图将一个数组复制到另一个只复制不同内容的数组。在我制作多维阵列之前,我已经完成了这项工作。现在,当我运行下面的代码时,它只是将原始数组复制到第二个数组。我还需要在以后将数据输出到网页时将它们保持为数组格式。我做错了什么?我能不能用multi-dim做这个C# 仅复制到第二个数组,c#,arrays,string,C#,Arrays,String,我试图将一个数组复制到另一个只复制不同内容的数组。在我制作多维阵列之前,我已经完成了这项工作。现在,当我运行下面的代码时,它只是将原始数组复制到第二个数组。我还需要在以后将数据输出到网页时将它们保持为数组格式。我做错了什么?我能不能用multi-dim做这个 string[][] array; string[][] array2; array2 = array.Distinct().ToArray(); 发布后,我是否可以编辑我的file.readalllines以不读取相同的行?代码如下,表
string[][] array;
string[][] array2;
array2 = array.Distinct().ToArray();
发布后,我是否可以编辑我的file.readalllines以不读取相同的行?代码如下,表作为数组传回
string[][] table = File.ReadAllLines(@path)
.Select(line => line.Split(';'))
.ToArray();
为了简单起见。为什么不使用此选项(在行级别应用不同的选项): 这里的假设是,相等的线导致相同的数组。这意味着,顺序是两条不同直线相等定义中的一个组成部分。(我想我的评论根本没有被理解,所以添加了一个答案) 假设您的文本文件是这样的(c:\temp\myFile.txt): 然后,您可以使用如下代码获得不同的行:
void Main()
{
int custId;
decimal amount;
var content =
File.ReadAllLines(@"c:\temp\myFile.txt")
.Select(f => f.Split(';'))
.Select(f => new
{
CustomerID = int.TryParse(f[0], out custId) ? custId : -1,
Company = f[1].Trim(),
Amount = Decimal.TryParse(f[2], out amount) ? amount : 0M
})
.Where(f => f.CustomerID != -1)
.Distinct();
foreach (var c in content)
{
Console.WriteLine("CustomerID:{0}, Company:{1}, Amount:{2}", c.CustomerID, c.Company, c.Amount);
}
}
你说不工作是什么意思?当您想执行
Distinct()
时,是否希望每个内部数组都只有不同的值?最好显示一些输入和预期的数据Distinct
没有为多维数组定义。假设您有array=={“a”、“b”、“a”、“d”}、{“a”、“b”、“c”、“b”}
;预期的答案是什么?您需要首先定义此场景中的distinct含义。还有你希望.NET为你做什么。你有重复的行吗?还是在这行中有重复的项。拆分(“;”)
重复的项要区分?这就是我做错的地方。我有一种感觉,我可以读懂它,并尝试了类似的东西之前。我的问题是我一直在努力;在最后一行。谢谢。如果您认为这是关于以类似CSV的方式获取不同的值,那么这可能会失败。除了1; Name1; 100
1; Name1;100
1 ;Name1;100
11; Name1; 100
2;Name2;20
void Main()
{
int custId;
decimal amount;
var content =
File.ReadAllLines(@"c:\temp\myFile.txt")
.Select(f => f.Split(';'))
.Select(f => new
{
CustomerID = int.TryParse(f[0], out custId) ? custId : -1,
Company = f[1].Trim(),
Amount = Decimal.TryParse(f[2], out amount) ? amount : 0M
})
.Where(f => f.CustomerID != -1)
.Distinct();
foreach (var c in content)
{
Console.WriteLine("CustomerID:{0}, Company:{1}, Amount:{2}", c.CustomerID, c.Company, c.Amount);
}
}