小编inq*_*one的帖子

如何为匿名类型编写扩展方法?

我正在尝试为我的可枚举列表创建一个CSV扩展方法,我很难过.这是我创建简单枚举列表的方法:

var CAquery = from temp in CAtemp
 join casect in CAdb.sectors
 on temp.sector_code equals casect.sector_code
 select new
 {       
     CUSIP = temp.equity_cusip,
     CompName = temp.company_name,
     Exchange = temp.primary_exchange       
 };

CAquery.WriteToCSVFile();
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止创建扩展方法(我认为是错误的):

public static class CSVExtensions
{        
    public static void WriteToCSVFile(this IEnumerable<T> myList)
    {
Run Code Online (Sandbox Code Playgroud)

你看到我做错了吗?

c# linq extension-methods linq-to-sql

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

将Linq-To-SQL列表导入MongoDB

我有一个非常简单的LinqToSql列表.

var list = DB.Where(c => c.Status.Equals("active")).Select(c => c.Name);
Run Code Online (Sandbox Code Playgroud)

我正在尝试将该列表导入MongoDB.这是我到目前为止所拥有的:

const string connectionString = "mongodb://localhost";
var client = new MongoClient(connectionString);
MongoServer server = client.GetServer();
MongoDatabase database = server.GetDatabase("test");
var collection = database.GetCollection("salesppl");
collection.Insert(list);
Run Code Online (Sandbox Code Playgroud)

我也尝试过InsertBatch和Save,但没有运气.以下是我为每个错误消息:InsertBatch

BsonSerializationException:Serializer StringSerializer期望序列化选项类型为RepresentationSerializationOptions,而不是DocumentSerializationOptions.

插入

BsonSerializationException:Serializer EnumerableSerializer期望ArraySerializationOptions类型的序列化选项,而不是DocumentSerializationOptions.

保存

InvalidOperationException:Save只能用于具有Id的文档.

注意: 我认为这没有任何意义,但我通过LinqPad这样做.

那么,如何将此列表保存到MongoDb?

c# linq import mongodb linq-to-sql

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

带有WHERE子句的SQL INNER JOIN到LINQ格式

我如何将此SQL查询转换为LINQ?

SELECT company.ticker, company.primary_analyst, 
       personnel.last_name, company.research_associate,
       company.secondary_associate, company.coverage_status
FROM company 
     INNER JOIN personnel ON company.primary_analyst = personnel.dpinitials
WHERE personnel.last_name='marley' AND company.associate='ml'
ORDER BY company.coverage_status
Run Code Online (Sandbox Code Playgroud)

sql linq inner-join where

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

win cmd在Excel中打开特定电子表格的内容是什么?

我知道你可以从win cmd行打开一个Excel文件.但是如何使用win cmd在该文件中打开特定的电子表格?

windows vbscript excel cmd

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

LinqPad(LpRun)命令脚本创建CSV文件

我有一个基本的linq查询,我想把它放到CSV文件中.从LinqPad运行时,以下代码工作正常:

var phxTix = Companies
.Select (c => new { 
    Ticker = c.Ticker.Trim(),
    FameTick = c.Coverage_Status.Trim()});

Util.WriteCsv(phxTix, @"c:\Temp\phxticks.csv");
Run Code Online (Sandbox Code Playgroud)

但是当我从命令行运行以下Powershell脚本时出现错误:

$srcLoc = "c:\linqscripts\GetPhxTix.linq"
$destLoc = "c:\Temp\phxticks.csv"
lprun -lang=e -cxname=myDB -format=csv $srcLoc > $destLoc
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

lprun : c:\Users\AppData\Local\Temp\LINQPad\_ibakcumi\query_bggevp.cs(35,36) : error CS1513: } 
expected
At c:\PS\GetPhxTicksJob.ps1:4 char:1
+ lprun -lang=e -cxname=myDB $srcLoc > $destLoc
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (c:\Users\...513: } expected:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

c:\linqscripts\GetPhxTix.linq(31,3) : error CS1519: Invalid token ')' in class, struct, or 
interface member declaration …
Run Code Online (Sandbox Code Playgroud)

c# powershell command-line linqpad

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

如何使用AngleSharp和LINQ从网站提取数据?

我正在尝试从下面提到的网站中提取价格。我正在使用AngleSharp进行提取。在网站上,价格列在下面(例如):

<span class="c-price">650.00                            </span>
Run Code Online (Sandbox Code Playgroud)

我正在使用以下代码进行提取。

using AngleSharp.Parser.Html;
using System.Net;
using System.Net.Http

//Make the request
var uri = "https://meadjohnson.world.tmall.com/search.htm?search=y&orderType=defaultSort&scene=taobao_shop";
var cancellationToken = new CancellationTokenSource();
var httpClient = new HttpClient();
var request = await httpClient.GetAsync(uri);
cancellationToken.Token.ThrowIfCancellationRequested();

//Get the response stream
var response = await request.Content.ReadAsStreamAsync();
cancellationToken.Token.ThrowIfCancellationRequested();

//Parse the stream
var parser = new HtmlParser();
var document = parser.Parse(response);

//Do something with LINQ
var pricesListItemsLinq = document.All
     .Where(m => m.LocalName == "span" && m.ClassList.Equals("c-price"));
Console.WriteLine(pricesListItemsLinq.Count());
Run Code Online (Sandbox Code Playgroud)

但是,我没有任何物品,但是它们在网站上。我究竟做错了什么?如果不推荐使用AngleSharp,该怎么用?我应该使用什么代码?

c# linq web-scraping data-extraction anglesharp

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

LINQ to JSON - 查询对象或数组

我正在尝试获取SEDOL和ADP值的列表.以下是我的json文字:

{
    "DataFeed" : {
        "@FeedName" : "AdminData",
        "Issuer" : [{
                "id" : "1528",
                "name" : "ZYZ.A a Test Company",
                "clientCode" : "ZYZ.A",
                "securities" : {
                    "Security" : {
                        "id" : "1537",
                        "sedol" : "SEDOL111",
                        "coverage" : {
                            "Coverage" : [{
                                    "analyst" : {
                                        "@id" : "164",
                                        "@clientCode" : "SJ",
                                        "@firstName" : "Steve",
                                        "@lastName" : "Jobs",
                                        "@rank" : "1"
                                    }
                                }, {
                                    "analyst" : {
                                        "@id" : "261",
                                        "@clientCode" : "BG",
                                        "@firstName" : "Bill",
                                        "@lastName" : "Gates",
                                        "@rank" : "2" …
Run Code Online (Sandbox Code Playgroud)

c# linq json.net linq-to-json

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

合并2个LINQ列表时出错

合并2个LINQ列表后,我遇到了问题.我收到以下错误:查询包含对在不同数据上下文中定义的项的引用.

这就是我构建我的最终2个LINQ列表的方式:

CAPDBDataContext CAdb = new CAPDBDataContext();
USPDBDataContext USdb = new USPDBDataContext();

var ExceptionList = Special_texts.Where(x => x.name.Equals("ExceptionList"))
                    .Select(x => x.special_text1)
                    .AsEnumerable()
                    .Select(x => x.Split(new[] { '#' }, StringSplitOptions.RemoveEmptyEntries))
                    .SelectMany(x => x)
                    .ToList();

var USquery = from uscomp in USdb.UScompanies
              join ussect in USdb.USsectors
              on uscomp.sector_code equals ussect.sector_code
              select new
              {
                  uscomp.company_name,
                  uscomp.primary_exchange,
                  ussect.description
              };

var CAtemp = from x in CAdb.companies
             where !ShefalisList.Contains(x.ticker)
             select x;

var CAquery = from temp in CAtemp
             join casect in CAdb.sectors
             on temp.sector_code equals …
Run Code Online (Sandbox Code Playgroud)

c# linq linq-to-sql

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

仅将第一个Word文档页面转换为PDF

我正在使用Office 2010互操作和C#4.如何将word文档的第一页转换为PDF?这个问题("我如何以编程方式将Word文件转换为PDF?")帮助我开始,但它只显示了如何将整个文档保存为PDF.

有办法吗?

  • 仅将第一页保存为PDF?(最理想的选择)
  • 删除所有剩余页面,然后另存为PDF?

我该怎么做呢?

pdf-generation office-interop c#-4.0 word-2010

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

LinqToExcel:excel列中的不同值

这对你们大师来说可能是一件非常简单的事情,但我不熟悉C#4和INTEROP.因此,我很难过.这是我的问题.我有一个具有重复数据的excel列,我想将其修剪为唯一值.这是数据的样子:

ColA    ColB
10      Adam
12      Jane
14      Adam
18      Adam
20      Eve
Run Code Online (Sandbox Code Playgroud)

所以,最后我只想要ColB的独特名字:

Adam
Jane
Eve
Run Code Online (Sandbox Code Playgroud)

我知道我可以通过将所有这些值放入List中然后向其中添加Distinct功能来实现此目的.但我认为我做错了什么.无论如何,这是我的计划:

Application XLApp = new Microsoft.Office.Interop.Excel.Application();
var XLBook = XLApp.Workbooks.Open(@"c:\temp\Test.xls", ReadOnly: false);
// Grab the 1st sheet
var XLSheet = (Microsoft.Office.Interop.Excel.Worksheet)XLBook.Worksheets.get_Item(1);

XLApp.Visible = true;
// I think I need help with the following lines
IEnumerable<string> myCol = XLApp.Range["B2", XLApp.Range["B2"].End[XlDirection.xlDown]].Select();
myCol.ToList().Distinct();

XLBook.Close(false, System.Reflection.Missing.Value, System.Reflection.Missing.Value);
((_Application)XLApp).Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(XLApp);
Run Code Online (Sandbox Code Playgroud)

如何使用C#4对Excel执行此操作?

提前致谢.

linq interop excel-interop linq-to-excel c#-4.0

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

拆分LINQ字符串列表

我相信这对你来说可能是另一个简单的LINQ大师.

我有一个表格,其中包含由"#"分隔的字符串.在使用LINQ选择字段后,如何将每个字符串拆分为不同的列表?我的字符串列表如下所示:

#A#B#C#D#G#F
Run Code Online (Sandbox Code Playgroud)

我用一个简单的LINQ查询来访问它:

from x in Special_texts
where x.Name.Equals("ExceptionList")
select x.Content
Run Code Online (Sandbox Code Playgroud)

最后,我的列表应包含:

A
B
C
D
G
F
Run Code Online (Sandbox Code Playgroud)

提前致谢.

c# linq split linq-to-sql

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

LINQ查询修改列表

这似乎是一个难以破解的难题.我希望你的大师很容易.我想知道这是否可以使用LINQ.

这是我的清单:

ABC,1,RON,26,73
CDE,13,JON,21,18
ERROR,ERROR LINE,ERROR LINE,DEF
DEF,NOT AVAILABLE,"",JANE,32,13
GHI,23,DAWN,14,25
Run Code Online (Sandbox Code Playgroud)

我需要用这个列表完成两件事:

  1. 将带有ERROR的行和下一行移动到列表的底部
  2. ERROR之后的下一行(以"DEF"开头的那一行)必须进行修改,以便所有字段都排列为正确的字段.但是,我仍然应该继续使用ERROR线.

最终列表应如下所示:

ABC,1,RON,26,73
CDE,13,JON,21,18
GHI,23,DAWN,14,25
ERROR,ERROR LINE,ERROR LINE,DEF
DEF,NOT AVAILABLE,JANE,32,13
Run Code Online (Sandbox Code Playgroud)

现在,我完整,详细的LINQ查询如下所示:

var myList = (File.ReadLines(myFile.ToString(), Encoding.GetEncoding(1250)))
    .ToList()
    .OrderBy(l => l[0].ToString())
    .Select(l => new specialclass {
        Comp = l[0].ToString(),
        Place = Convert.ToInt32(l[1].ToString()),
        Name = l[2].ToString(),
        Limit = Convert.ToInt32(l[3].ToString()),
        Limit2 = Convert.ToInt32(l[4].ToString())
    });
Run Code Online (Sandbox Code Playgroud)

c# linq list

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