Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将预测结果复制到c#中的另一个变量中?_C#_Linq_Types_Linq To Sql - Fatal编程技术网

如何将预测结果复制到c#中的另一个变量中?

如何将预测结果复制到c#中的另一个变量中?,c#,linq,types,linq-to-sql,C#,Linq,Types,Linq To Sql,下面的代码无法运行,因为它抱怨我试图将类型Anon添加到客户机类型中。在最初投影某些结果并丢失原始类型后,如何将其存储在另一个变量中 (注:我已经把我的例子简单化了,但实际上我正在处理一个更复杂的案例。在我的实际案例中,不投射不是一个选项。编辑以提供澄清。) var clients=clients.Where(c=>c.FirstName.StartsWith(“Mark”)) .选择(c=>new{ LastName=c.LastName.ToUpper(), c、 已添加日期, c、 名字,

下面的代码无法运行,因为它抱怨我试图将类型Anon添加到客户机类型中。在最初投影某些结果并丢失原始类型后,如何将其存储在另一个变量中

(注:我已经把我的例子简单化了,但实际上我正在处理一个更复杂的案例。在我的实际案例中,不投射不是一个选项。编辑以提供澄清。)

var clients=clients.Where(c=>c.FirstName.StartsWith(“Mark”))
.选择(c=>new{
LastName=c.LastName.ToUpper(),
c、 已添加日期,
c、 名字,
})
.ToList();
var certainClients=新列表{};
foreach(客户机中的var客户机)
{
如果(client.DateAdded.Date
有两种选择

首先。使用
Clients
datatype,而不是使用anon数据类型。实际上,您正在创建
客户端
对象-

var clients = Clients.Where(c => c.FirstName.StartsWith("Mark"))
              .Select(c => new Clients{
                       LastName = c.LastName.ToUpper(),
                       c.DateAdded,
                       c.FirstName,
 })
第二。创建
对象的列表
并为其指定任何自定义/非自定义数据类型-

var certainClients = new List<object> { };
var certainClients=新列表{};

最好的方法是投影到自定义业务实体类。 这意味着我们实际上是自己定义类的。比如说

 public class ClientEntity
    {
       public string LastName;
       public DateTime DateAdded;
        // etc for custom fields or properties you want
    }
然后我们可以简单地投影到我们定制的类

var clients = Clients.Where(c => c.FirstName.StartsWith("Mark"))
              .Select(c => new ClientEntity{
                       LastName = c.LastName.ToUpper(),
                       DateAdded = c.DateAdded,
                       etc
 })
这样就避免了
列表
,因为它不是类型安全的,并且不需要与原始客户机类相似,例如,如果我们想要原始名称的长度。

完美<代码>新列表{}在我的情况下非常有效。谢谢
var clients = Clients.Where(c => c.FirstName.StartsWith("Mark"))
              .Select(c => new ClientEntity{
                       LastName = c.LastName.ToUpper(),
                       DateAdded = c.DateAdded,
                       etc
 })