I am trying to understand this problem and its corresponding solution (complete solution not shown)





First off, from the above one can see that the equilibrium constants when $\ce{H2ASO4-}$ donates and receives a proton are as follows:
\begin{aligned}
\ce{H2AsO4 &amp;&lt;=&gt; HAsO4^{2-} + H+} &amp; K_2 &amp;= 1.1 \cdot 10^{−7}\\
\ce{H2AsO4- + H+ &amp;&lt;=&gt; H3AsO4}    &amp; K_{-1} &amp;= 1.6 \cdot 10^{2}\\
\end{aligned}

However, if this is an amphoteric substance as the solution claims, shouldn't both $K_a$ values be comparable? It seems logical that if it is able to act as both an acid and a base, the equilibrium constants should at least be similar to each other. Instead, one is several order of magnitudes larger than the other? Why can this be true and $\ce{H2ASO4-}$ still be an amphoteric substance?



Next, how did they arrive at the statement


  We approximately have the equality relation: $$\ce{[H3AsO4]} = \ce{[HAsO4^{2−}]}$$


What is the evidence that shows this to be true? Isn't the $K_a$ value of the basic reaction ($1.6 \times 10^2$) much larger than that of the acidic reaction? Why should the concentrations be equal?



Finally, let's say you are calculating the pH for the diprotic substance $\ce{H2S}$, which undergoes the following diassociations:

$$\ce{H2S &lt;=&gt; H+ + HS-}$$
$$\ce{HS- &lt;=&gt; H+ + S^{2-}}$$

To find the pH you would assume that the first reaction is dominant, and that the effects of the second reaction consuming $\ce{HS-}$ are minimal, and then calculate the pH from there — right? 

However, why can't you treat $\ce{HS-}$ as an amphoteric substance (because it can both gain and lose a proton) and then calculate the pH as you would for an amphoteric substance (as seen in the image at the beginning)?


Question: LINQ with Group, Join and Where Easy in SQL not in LINQ?
Answer: You could try this:

   var query = from s in Supplier
                    join o in Offers on s.Supp_ID equals o.Supp_ID
                    join p in Product on o.Prod_ID equals p.Prod_ID
                    where s.City == "Chicago"
                    group s 
                    by new {s.City, s.Name} //added this
                    into Results
                    select new { Name = Results.Key.Name };