【问题标题】:How can i assign these "var" results to different variables? [closed]如何将这些“var”结果分配给不同的变量? [关闭]
【发布时间】:2018-01-26 01:22:23
【问题描述】:

这些是我的结果:

大家好。

我希望将这些结果分配给不同的变量。

例如;

stringone = "Etiler";
stringtwo = "Kağıthane";
stringthree = "Şişli";

【问题讨论】:

  • 你问的根本不清楚
  • @maccettura:从截图来看,提问者正在循环一个 1 列的数据库结果集,并希望将每一行的值分配给不同的独立命名的变量。
  • 好的,那么让我这样说吧。先看图。我正在从数据库中提取一些数据,这些数据将许多结果返回到一个“var”变量中。但是我需要将从数据库返回的这些结果分配给字符串变量。所以我需要每个结果都有自己的变量。我说清楚了吗?
  • var 是什么类型(除非可以从代码中推断出类型,否则切勿使用 var)。结果计数是静态的吗(即它总是返回x 结果)?
  • @RifKohen 你真的不能那样做......这就是收藏的目的。您可以将它们放在一个数组中并使用索引。它看起来像这样:var myArray = db.Servis.ToArray(); 然后var stringOne = myArray[0]

标签: c# model-view-controller var


【解决方案1】:

C#是强类型 变量必须在编译时定义,所以不能在运行时动态创建变量。 但是,您可以使用集合来保存结果。

使用列表:

var result = db.servis.Where(s => ...).ToList();
// access first element:
var first = result.ElementAt(0);

使用数组:

var result = db.servis.Where(s => ...).ToArray();
// access first element:
var first = result[0]; // here "0" is the array index

使用字典:

var result = db.servis.Where(s => ...)
    .Select((item, index) => new {index, item})
    .ToDictionary(x => "string" + (x.index + 1), x => x.item);
// access first element:
var first = result["string1"]; // here "string1" is the key of the key value pair

【讨论】:

  • 我能想到的唯一原因就是你的推理。这不是不可能的,因为 C# 是强类型的,这是不可能的,因为你不能在运行时创建变量。 (只是为了澄清我不是反对你的人)
  • 如何将 DISTINCT 添加到“var result = db.servis.Where(s => ...).ToList();”
  • 您可以使用 LINQ Distinct(): var result = db.servis.Where(s => ...).Distinct().ToList();。在这种情况下它将使用默认的IEqualityComparer,您也可以传递一个自定义的。
猜你喜欢
  • 1970-01-01
  • 2021-11-05
  • 2020-12-01
  • 1970-01-01
  • 2010-10-22
  • 1970-01-01
  • 1970-01-01
  • 2018-04-16
  • 2021-02-04
相关资源
最近更新 更多