
quando eu tirar o Tim ele volta a funcionar perfeitamente
Na verdade, não é que não encontra o método, é que em algum ponto ele não acha referência, aí não consegue o objeto, consequentemente, não consegue dar o trim nele.
Talvez sem o trim, nao da o erro, mas tb nao seta nenhum valor pra esses casos
@igor_ks é o que acontece:
Se eu tirar o Trim
funciona, mas está muitos chato, pois coisas como IndexOf
, ToString
e por ai vai. Estão com problemas semelhantes, tentei encontrar alguma coisa na PAI DO SABER e não encontrei coisa semelhante.
Eduardo faltou coisas na sua pergunta, tipo:
attrs
e qual seu conteúdo, um exemplo, coloque a declaração dele com o seu conteúdo?vals
e segue a mesma coisa que attrs
, declaração e conteúdo?Assim de cara:
string sets = "";
for (int i = 0; i < attrs.Length; i++)
{
attrs[i] = string.Format("{0}={1}", (attrs[i])?.Trim(), (vals[i])?.Trim());
}
talvez resolve seu problema de imediato, mas, o certo e você dizer quem é attrs
e vals
, informação não dita na sua pergunta.
O nome desse recurso é Null-conditional Operators (C# and Visual Basic)
São simplesmente Array
de string
, observe:
string[] attrs = ("TipoOperacao, DestinoOperacao, TipoEmitente, ModeloDoc, SituacaoDoc, FormatoDANFE, TipoEmissao, "
+ "Finalidade, IndicaOperacao, IndicadorPresenca, TipoFrete, Serie, Numero, NumeroFabECF, SeqECF, COO, "
+ "ChaveAcesso, JustCont, NomeUsuario, CondicaoPgto, "
+ "FormaPgto, CodigoOperacao, NaturezaOperacao, TipoPreco, Renegociacao, NomeParticipante, CNPJCPFParticipante, "
+ "IDEstrangeiro, CCEParticipante, EnderecoParticipante, NumeroParticipante, ComplementoParticipante, BairroParticipante, "
+ "CodigoMunicipioParticipante, MunicipioParticipante, UFParticipante, CEPParticipante, CodigoPaisParticipante, "
+ "PaisParticipante, DDDParticipante, FoneParticipante, EmailParticipante, CodigoParticipante, OptanteSN, TotalProduto, "
+ "TotalDesconto, TotalFrete, TotalSeguro, TotalOutrasDespesas, TotalAbatimentoNT, TotalAcrescimoNT, TotalNota, "
+ "TotalBaseOutras, TotalBaseNaoTribICMS, TotalBaseICMSST, TotalBaseICMS, TotalICMS, TotalICMSST, TotalICMSFCPUFDest, "
+ "TotalICMSUFDest, TotalICMSUFRemet, TotalICMSDeson, TotalICMSDifer, TotalIPI, TotalPIS, TotalPISST, TotalCOFINS, "
+ "TotalCOFINSST, TotalII, TotalAproxImpFed, TotalAproxImpEst, TotalAproxImpMun, DadosAdicionais, [Status], [_sinc], [Bloq]").Split(',');
string[] vals = ("'" + modal.TipoOperacao + "', " + "'" + modal.DestinoOperacao + "', " + "'" + modal.TipoEmitente + "', "
+ "'" + modal.ModeloDoc + "', " + "'" + modal.SituacaoDoc + "', " + "'" + modal.FormatoDANFE + "', " + "'" + modal.TipoEmissao + "', "
+ "'" + modal.Finalidade + "', " + "'" + modal.IndicaOperacao + "', " + "'" + modal.IndicadorPresenca + "', " + "'" + modal.TipoFrete + "', "
+ "'" + modal.Serie + "', " + "'" + modal.Numero + "', " + "'" + modal.NumeroFabECF + "', " + "'" + modal.SeqECF + "', " + "'" + modal.COO + "', "
+ "'" + modal.ChaveAcesso + "', " + "'" + modal.JustCont + "', " + "'" + modal.NomeUsuario + "', " + "'" + modal.CondicaoPgto + "', "
+ "'" + modal.FormaPgto + "', " + "'" + modal.CodigoOperacao + "', " + "'" + modal.NaturezaOperacao + "', " + "'" + modal.TipoPreco + "', "
+ "'" + modal.Renegociacao + "', " + "'" + modal.NomeParticipante + "', " + "'" + modal.CNPJCPFParticipante + "', " + "'" + modal.IDEstrangeiro + "', "
+ "'" + modal.CCEParticipante + "', " + "'" + modal.EnderecoParticipante + "', " + "'" + modal.NumeroParticipante + "', "
+ "'" + modal.ComplementoParticipante + "', " + "'" + modal.BairroParticipante + "', " + "'" + modal.CodigoMunicipioParticipante + "', "
+ "'" + modal.MunicipioParticipante + "', " + "'" + modal.UFParticipante + "', "
+ "'" + modal.CEPParticipante + "', " + "'" + modal.CodigoPaisParticipante + "', " + "'" + modal.PaisParticipante + "', " + "'" + modal.DDDParticipante + "', "
+ "'" + modal.FoneParticipante + "', " + "'" + modal.EmailParticipante + "', " + "'" + modal.CodigoParticipante + "', " + "'" + modal.OptanteSN + "', "
+ "'" + modal.TotalProduto + "', " + "'" + modal.TotalDesconto + "', " + "'" + modal.TotalFrete + "', " + "'" + modal.TotalSeguro + "', "
+ "'" + modal.TotalOutrasDespesas + "', " + "'" + modal.TotalAbatimentoNT + "', " + "'" + modal.TotalAcrescimoNT + "', " + "'" + modal.TotalNota + "', "
+ "'" + modal.TotalBaseOutras + "', " + "'" + modal.TotalBaseNaoTribICMS + "', " + "'" + modal.TotalBaseICMSST + "', " + "'" + modal.TotalBaseICMS + "', "
+ "'" + modal.TotalICMS + "', " + "'" + modal.TotalICMSST + "', " + "'" + modal.TotalICMSFCPUFDest + "', " + "'" + modal.TotalICMSUFDest + "', "
+ "'" + modal.TotalICMSUFRemet + "', " + "'" + modal.TotalICMSDeson + "', " + "'" + modal.TotalICMSDifer + "', " + "'" + modal.TotalIPI + "', "
+ "'" + modal.TotalPIS + "', " + "'" + modal.TotalPISST + "', " + "'" + modal.TotalCOFINS + "', " + "'" + modal.TotalCOFINSST + "', "
+ "'" + modal.TotalII + "', " + "'" + modal.TotalAproxImpFed + "', " + "'" + modal.TotalAproxImpEst + "', " + "'" + modal.TotalAproxImpMun + "', "
+ "'" + modal.DadosAdicionais + "', " + "'" + modal.Status + "', " + "'" + modal.Sinc + "', " + "'" + modal.Bloq + "'").Split(',');
Seguinte a quantidade de elementos são diferentes em attrs
e vals
esse é o motivo!, entendeu?
Usando o código que te passei resolve o problema em questão, mas, talvez crie uma solução que você não quer!
Dá uma olhada nisso, os tamanhos são diferentes em cada array
!!!
Tipo qual é o Length
de attrs
e vals
?